React.useEffect 缺少依赖项 - 状态
React.useEffect missing dependency - state
我收到错误 "React Hook React.useEffect has a missing dependency: 'openPosts'",其中 openPosts 在 Hook 中处于状态。
export const Posts = (props) => {
const [openPosts, setOpenPosts] = React.useState([]); *openPosts is an array of numbers*
React.useEffect(_ => {
let filteredOpenPosts = openPosts.filter(num => num >= 1);
setOpenPosts(filteredOpenPosts);
}, [props.userId]);
我已经阅读过,但我不明白为什么会出现此错误。我可以忽略它吗?
我基本上希望 state 像上面那样通过 props.userId
中的更改进行过滤,并且认为这是一种干净的方法。我还可以创建更多状态来跟踪 props.userId
中的任何更改,但如果以上内容可行,我会更喜欢它。
如果你不想指定依赖,那么你可以试试这个,
React.useEffect(_ => {
setOpenPosts(prevState => prevState.filter(num => num >= 1));
}, [props.userId]);
我收到错误 "React Hook React.useEffect has a missing dependency: 'openPosts'",其中 openPosts 在 Hook 中处于状态。
export const Posts = (props) => {
const [openPosts, setOpenPosts] = React.useState([]); *openPosts is an array of numbers*
React.useEffect(_ => {
let filteredOpenPosts = openPosts.filter(num => num >= 1);
setOpenPosts(filteredOpenPosts);
}, [props.userId]);
我已经阅读过,但我不明白为什么会出现此错误。我可以忽略它吗?
我基本上希望 state 像上面那样通过 props.userId
中的更改进行过滤,并且认为这是一种干净的方法。我还可以创建更多状态来跟踪 props.userId
中的任何更改,但如果以上内容可行,我会更喜欢它。
如果你不想指定依赖,那么你可以试试这个,
React.useEffect(_ => {
setOpenPosts(prevState => prevState.filter(num => num >= 1));
}, [props.userId]);