为什么useeffect在道具更改时不更新状态

vq8itlhq  于 2021-09-13  发布在  Java
关注(0)|答案(0)|浏览(236)

我创建了一个二维数组并将其存储为状态。我从组件的道具中获取2d数组的维数
组件看起来像这样-

const Board = ({ props }) => {
  const [board, setBoard] = useState([]);

  useEffect(() => {
    console.log('inside useEffect'); //for debug purposes...

    //create a 2d array here
    const arr = [];
    for (let i = 0; i < props.dimension; ++i) {
      const row = [];
      for (let j = 0; j < props.dimension; ++j) {
        row.push(0);
      }
      arr.push(row);
    }

    //Now set the array in our board variable
    setBoard(arr);
  }, [props.dimension]);

  //Rest of the component...

}

我从它的父元素使用它,就像这样-

<Board dimension={3} />

但当我运行代码时,它不会更新我的变量。它不运行 useEffect 阻止时 props.dimension 改变(不改变) console.log 我在 useEffect 块)

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题