reactjs - 做出反应。子组件正在改变父组件
问题描述
所以我在父组件中有一个子组件,我想将状态的克隆传递给子组件并对其执行一些操作,但我得到的是当我更改子组件时,父组件的状态也会发生变化,我不想让他们分开。致电儿童补偿: <UpdateTasksModal Tasks={this.state.Tasks.filter(x => x.selected == true)} />
儿童补偿:
const [Tasks, setTasks] = useState(props.Tasks)
useEffect(() => {
setTasks( props.Tasks )
}, [props.Tasks])
function handleTaskChange(e, index){
let newTasks = Tasks
newTasks[index][e.target.name] = e.target.value
setTasks([...newTasks])
}
解决方案
如果您使用扩展运算符克隆道具,则它是影子克隆。如果你真的想要一个深度克隆,尝试使用
JSON.parse(JSON.stringify(props.Task))
推荐阅读
- javascript - 如何创建 JSON 对象文件夹名和文件名视图
- seaborn - ValueError: min() arg is an empty sequence - 探索性分析
- r - 如何在 R 中将函数参数捕获为字符串?
- python - 最大的森林(亚马逊面试题)
- regex - 分隔符之间的正则表达式单个字符
- python - Python验证用户输入的数据问题
- angular - 在多组件角度使用组件延迟加载?
- apache-kafka - Kafka 代理在从生产者处获取消息时是否对页面缓存/磁盘进行零拷贝写入?如果是这样,它如何进行任何健全性检查?
- styled-components - 使用 Styled-Components,为什么我不能从条件中访问主题?
- javascript - 有没有办法从 Vue.js Mixin 调用递归函数?