const Parent = () => {
const [thing, setThing] = useState('a string');
// code to update thing
return <Child thing={thing} />
}
const Child = props => {
return <div>I want {props.thing} to be initial value without updating</div>
}
如果我想将“事物”从父母传递给孩子,但当父母改变它时不希望更新,我该怎么做?
我尝试过useEffect,尝试将'事物'克隆到Child中的常量...
答案 0 :(得分:2)
我将{XX=2, YY=1, XY=3, XZ=3}
与空filter-parsed
用作依赖项,因此它只能运行一次。
来自Reactjs.org:
如果您要运行效果并仅将其清理一次(在挂载和卸载时),则可以将空数组(
useEffect
)作为第二个参数传递。这告诉React,您的效果不依赖于道具或状态中的任何值,因此它不需要重新运行。
[]
答案 1 :(得分:0)
也许您可以尝试将其设置为null时,将其设置为子组件中的变量。因此,当父级更新时,您不必更新子级。
let childThing = null;
const Child = props => {
if(childThing === null)
childThing = props.thing
return <div>I want {childThing} to be initial value without updating</div>
}