gpt4 book ai didi

javascript - React 中的子方法可以有更改处理程序吗?

转载 作者:行者123 更新时间:2023-12-02 21:35:43 25 4
gpt4 key购买 nike

我想知道为什么具有更改值的子组件没有在此处呈现

让子进程处理自己的更改不是一个好主意,或者让 Controller 位于父进程中更好吗?

class App extends React.Component {
constructor() {
super();
this.state = {
todos: todosData
};
}
render() {
const todoItems = this.state.todos.map(item => (
<TodoItem key={item.id} item={item} />
));
return <div className="todo-list">{todoItems}</div>;
}
}

这是子 TodoItem

class TodoItem extends React.Component {
constructor(props) {
super(props);
this.state = {
isComp: {}
};
this.handleChange = this.handleChange.bind(this);
}
handleChange() {
let tempObj = this.state.isComp;
tempObj.completed = !this.state.isComp.completed;
this.setState = { isComp: tempObj };
console.log(this.state.isComp);
}
render() {
this.state.isComp = this.props.item;
console.log(this.state.isComp);
return (
<div className="todo-item">
<input type="checkbox" checked={this.state.isComp.completed} />
<p>{this.props.item.text}</p>
</div>
);
}
}

正如您所看到的,状态是通过 handleChange() 更改的,但这不会触发渲染。我也不太确定是否可以将另一个对象分配给状态对象(let tempObj = thi.state.isComp)。

我想要实现的功能是选中和取消选中一个框并相应地进行渲染。

最佳答案

这是什么?

this.setState = { isComp: tempObj };

我觉得应该是

this.setState({ isComp: tempObj });

关于javascript - React 中的子方法可以有更改处理程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60499705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com