【发布时间】:2019-11-17 08:06:31
【问题描述】:
我有一个组件正在传递一个道具,当道具的值发生变化时我需要更新该组件。
我尝试使用 useEffect 钩子来查看 props 和 prop.propIWantToChange,但在渲染后我无法将更新传递给组件。
App.js
let tracker = true;
const handleChangeTracker = () => {
tracker = !tracker
}
const App = props => {
<React.Fragment>
<button onClick={handleChangeTracker} >Change</button>
<Component1 active={tracker} />
<Component2 />
<Component3 />
<Component4 />
</React.Fragment>
}
Component1.js
const Component1 = props => {
useEffect(() => {
console.log(props.active)
}, [props.active])
return (
<div>{props.active && "You see this when its true"}</div>
)
}
单击按钮时,我希望跟踪器的值在真假之间切换。然后我希望它将新值传递给 Component1。目前它会改变值(我通过控制台日志跟踪它)但它不会将新值传递给组件。
【问题讨论】:
-
useEffect的拼写错误。
-
那只是转移代码的一个错字,一切顺利。
-
是的,我已经发布了一个解决方案。试试看,让我知道它是否有效:-)
标签: reactjs react-hooks