类型错误:无法读取 reactjs 中未定义的属性“0”

时间:2021-05-21 08:35:48

标签: javascript reactjs firebase google-cloud-firestore

我遇到了这个错误:

<块引用>

类型错误:无法读取未定义的属性“0”

它说 const id = data[0]; 是导致错误的原因。

我的数据存储在 location.state 中,因为它取自上一页的一行。并且数据存储为数组。

这是 JSON 对象中的数据:

[
  "DgduuIHAf1wc2txlaK86",
  "Item1",  
];

这些是代码:

const Edit = () => {
  const location = useLocation();
  const data = location.state;
  const id = data[0];
  const [productName, setProductName] = useState(data[1]);
  

  const handleSubmit = async (event) => {
    event.preventDefault();
    try {;
      const Ref = firestore.collection("products").doc(id);
      const res = Ref.set(
        {
          productName,
        },
        { merge: true }
      );
      alert("Successfully updated");
    } catch (err) {
      console.log(err);
    }
  };

  return (
    <div>
      <Container>
        <form onSubmit={handleSubmit}>
          <FormControl>
            <TextField
              id="input"
              margin="dense"
              type="text"
              label="Product Name"
              value={productName}
              color="secondary"
              fullWidth
              onChange={(e) => setProductName(e.target.value)}
            />

            <Button
              type="submit"
            >
              Update
            </Button>
          </FormControl>
        </form>
      </Container>
    </div>
  );
};

export default Edit;

它确实保存了我在 firestore 中这些字段中的任何输入,但是,在提交后,它会显示此错误:我该如何解决?

<块引用>

类型错误:无法读取未定义的属性“0”

1 个答案:

答案 0 :(得分:0)

可能 .. = location.state; 返回 undefined。