如何解决我如何通过react
我有一个onClick方法来响应,该方法会更改名为指针的属性的状态。该功能在功能级别上起作用,但是除非双击按钮(onClick方法),否则UI不会以我的状态更新。我尝试将组件转换为类组件以利用render方法,但仍然没有结果。
let questions = [
{
id: 1,title: "This person tends to be quiet"
},{
id: 2,title: "This person is compassionate and has a soft heart."
},{
id: 3,title: "This person is disorganized.."
}
]
export default class Quiz extends React.Component {
constructor() {
super();
this.state = {
pointer: 0,currentAnswer: ""
};
}
render() {
return (
<div>
<h1> {questions[this.state.pointer].title}</h1>
<button onClick={(e) => {
e.preventDefault();
this.setState({
pointer: this.pointer++
});
console.log(this.pointer);
this.forceUpdate();
}}>
</div>
)
}
解决方法
问题是我需要将“ this.state.pointer +1”而不是“ this.pointer ++”放入。谢谢,冰镐
,您只是写了它,但至少我会给您一个解释。
对State的每个操作都必须以不变的方式执行,这基本上意味着,当您调用setState函数时,提供给setState的操作必须返回一个新值,而不是直接更改状态。
请在以后的操作中考虑到这一点,因为它会给您的应用程序带来可怕的副作用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。