当父级更改时,如何将道具传递给react组件却又不更新子级中的道具?

时间:2020-04-30 22:45:45

标签: javascript reactjs

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中的常量...

2 个答案:

答案 0 :(得分:2)

我将{XX=2, YY=1, XY=3, XZ=3} 与空filter-parsed用作依赖项,因此它只能运行一次。

来自Reactjs.org

如果您要运行效果并仅将其清理一次(在挂载和卸载时),则可以将空数组(useEffect)作为第二个参数传递。这告诉React,您的效果不依赖于道具或状态中的任何值,因此它不需要重新运行。

[]

enter image description here

CodeSandbox

答案 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>
}