我的目标是在useEffect
内调用一个动作。
const ShowTodos = (props) =>{
useEffect(()=>{
props.fetchTodos()
},[])
}
const mapStateToProps = (state)=>{
return {
todos:Object.values(state.todos),
currentUserId:state.authenticate.userId
}
}
export default connect(mapStateToProps,{fetchTodos})(ShowTodos)
这个功能运行良好,但我收到了一个警告。
React Hook useEffect has a missing dependency: 'props'. Either include it or remove the dependency array react-hooks/exhaustive-deps.
但是,如果我将props
作为我的useEffect
的第二个参数添加,那么它将无限运行。
在这里,我的第一个解决方法是使用useRef
,但似乎它总是重新渲染,从而重新设置useRef
,我认为这在优化方面不好。
const ref = useRef();
ref.current = props;
console.log(ref)
useEffect(()=>{
ref.current.fetchTodos()
},[])
这里还有其他解决方法吗?