Javascript 为什么在ReactJs中,如果子对象是静态生成的,我可以使用useffect()重新渲染子对象,但如果它是';动态的
我有一个父组件:Javascript 为什么在ReactJs中,如果子对象是静态生成的,我可以使用useffect()重新渲染子对象,但如果它是';动态的,javascript,reactjs,react-hooks,use-effect,Javascript,Reactjs,React Hooks,Use Effect,我有一个父组件: 从“反应引导/按钮”导入按钮 从“React”导入React,{useState,useffect}; 从“./Counter”导入计数器 函数App(){ const[disabledButton,setdisabledButton]=useState(false); const[count,setCount]=useState(2); 函数disableButtonClicked(){ 返回禁用按钮?“是”:“否”; } 常量[buttonList,setButtonL
从“反应引导/按钮”导入按钮
从“React”导入React,{useState,useffect};
从“./Counter”导入计数器
函数App(){
const[disabledButton,setdisabledButton]=useState(false);
const[count,setCount]=useState(2);
函数disableButtonClicked(){
返回禁用按钮?“是”:“否”;
}
常量[buttonList,setButtonList]=useState(
[ ,
]
);
const addButton=事件=>{
设置计数(计数+1);
setButtonList(buttonList.concat())
}
返回(
{/*静态添加的组件。我可以禁用按钮*/}
{/*随机添加的组件我无法禁用按钮*/}
{buttonList.map((button)=>({button}))}
禁用按钮
setdisabledButton((prev)=>!prev)}
/>
添加按钮
);
}
导出默认应用程序代码>您已为父组件和子组件粘贴了相同的代码。感谢您的注意!通过将组件存储在状态-,您在计数器
组件周围创建了一个陈旧的闭包。感谢您的评论@lawrence witt,我是否应该理解,将组件存储在状态被认为是不好的做法?当组件接受易于更改的道具时,绝对是这样。将纯组件储存在预计不会收到新道具的状态通常是好的。我个人更喜欢分开,但那是一个固执己见的选择。