【发布时间】:2019-12-01 20:07:06
【问题描述】:
我是 React 钩子的新手。所以,我想用 React 钩子实现 componentWillReceiveProps。 我像这样使用 React.useEffect():
React.useEffect(() => {
console.log(props.authLoginSuccess); // initially called every time, the component renders
}, [props.authLoginSuccess]);
return ( //JSX...)
onst mapStateToProps = (state: any): StateProps => {
return {
authLoginSuccess: selectAuthLoginSuccess(state) //used selector to select authLoginSuccess
};
};
export default connect(
mapStateToProps,
// mapDispatchToProps
{ authLogin, toggleLoadingStatus }
)(Auth);
问题是,每次组件最初呈现时都会调用 useEffect,这是我不想要的。我只希望它在“props.authLoginSuccess”更改时呈现。
【问题讨论】:
-
props.authLoginSuccess是什么数据结构? -
...另一个疯狂的猜测:您的组件可能被其父级(或与父级一起)重新安装。您可以通过添加
useEffect(() => { console.log('mounted!'); return () => console.log('unmounted');}, [])来检查 -
@go_diego, props.authLoginSuccess 是一个布尔值。
标签: reactjs react-redux react-hooks