1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

はじめに

業務中に学んだことをアウトプットするために簡単にまとめてみます。

入力欄

image.png

バリデーション

image.png

入力値を配列でstate管理できていることの確認

入力したデータが配列でstate管理できていることをconsole.log(data)で確認します

データ「10」を入力して送信ボタンをクリックするとuseStateの初期値である[]が取得できます
image.png

続けてデータ「20」を入力して送信ボタンをクリックすると前に送信した「10」を要素にもつ配列[10]が取得できます
image.png

以下略
image.png

やりかた

  const [data, setData] = useState<number[]>([]);
  const [newdata, setNewData] = useState("");

  const onChangeData = (e: ChangeEvent<HTMLInputElement>) => {
    setNewData(e.target.value);
    if (e.target.value === "") {
      setIsDataError(true);
    } else {
      setIsDataError(false);
    }
  };

  const onClickButton = () => {
    if (newData !== "") {
      setData([...data, Number(newData)]);
    }
    setNewData("");
    // console.log(data);
  };

  return (
    <>
      <VStack padding={8}>
        <Box w="50%" display="flex" alignItems="center" justifyContent="center">
          <FormControl isInvalid={isDataError}>
            <FormLabel>データ</FormLabel>
            <Input
              value={newData}
              onChange={(e) => onChangeData(e)}
              type="number"
            />

            {!isDataError ? (
              ""
            ) : (
              <FormErrorMessage>数字で入力してください</FormErrorMessage>
            )}
          </FormControl>
        </Box>

        <Button
          colorScheme="blue"
          mr={3}
          disabled={buttonValid()}
          onClick={() => onClickButton()}
        >
          送信
        </Button>
      </VStack>
    </>
  );



おわりに

reactでは基礎中の基礎だと思うので、しっかり教えられるように頭を整理しておきたいです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?