【发布时间】:2018-08-06 06:10:17
【问题描述】:
我想创建一个待办事项列表,它将任务存储在allTasks 状态,当我手动推送一些数据时工作,但当我添加一个带有输入的项目时,它没有在地图功能中显示。
class App extends Component {
constructor(props) {
super(props);
this.state = {
inputValue: '',
allTasks: []
}
this.addToList = this.addToList.bind(this);
}
addToList() {
this.state.allTasks.push(this.state.inputValue);
}
render() {
return (
<div>
<h1>کار های خود را مدیریت کنید !</h1>
<input type="text" placeholder="کار خود را بنویسید ..." onChange={ event => this.setState({ inputValue: event.target.value }) } />
<button onClick={ this.addToList }>ثبت کردن</button>
<hr />
<ul>
{
this.state.allTasks.map(task => {
return <li>{ task }</li>;
})
}
</ul>
</div>
);
}
}
【问题讨论】:
-
你必须用
this.setState(newState)更新状态,而不是直接在addToList中操作this.state。 -
此外,您还需要在您的
lis 上使用key道具。 reactjs.org/docs/lists-and-keys.html -
@forrert 你能给我举个例子吗,它也可以帮助别人。
-
@TylerSebastian 一定要使用密钥吗?
标签: javascript arrays reactjs ecmascript-6