reactjs - 停留在显示更新的数组数据
问题描述
我有一个数组 List
,我正在使用该.push()
方法向其中添加新元素,然后concat
在 Onclickadd
方法中使用 List 输入,但它没有更新数组以显示待办事项
import React from 'react'
import './App.css'
class App extends React.Component {
constructor(){
super()
this.state={
List: ['potato']
}
}
onAddChange=(event)=>{
this.setState=({
input: event.target.value
})
}
Onclickadd=()=>{
console.log('clicked')
this.setState=({List: this.state.List.concat(this.state.input)})
}
render (){
return (
<div className="App">
<h1>TODO LIST</h1>
<input onChange={this.onAddChange} type='text' placeholder='Add Items'/>
<button onClick={this.Onclickadd} className='btn'>Add</button>
<ol>
{this.state.List.map((items, keys) => {
return <li key={keys}> {items}</li>
})}
</ol>
</div>
);
}
}
export default App;
解决方案
this.setState
是一个需要一个对象的函数,您正在尝试分配值,而不是this.setState=
使用;
this.setState({
input: event.target.value
})
class App extends React.Component {
constructor(){
super()
this.state={
List: ['potato']
}
}
onAddChange=(event)=>{
this.setState({
input: event.target.value
})
}
Onclickadd=()=>{
this.setState({List: this.state.List.concat(this.state.input)})
}
render (){
return (
<div className="App">
<h1>TODO LIST</h1>
<input onChange={this.onAddChange} type='text' placeholder='Add Items'/>
<button onClick={this.Onclickadd} className='btn'>Add</button>
<ol>
{this.state.List.map((items, keys) => {
return <li key={keys}> {items}</li>
})}
</ol>
</div>
);
}
}
ReactDOM.render(<App />, document.body);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
更多信息setState
可以在这里找到
推荐阅读
- matlab - Solve a system of boolean equations in Matlab
- php - remove duplicated data from two different foreach loops
- docker - 从 Docker Hub 在 Rancher 上部署镜像
- ios - 旧消息未在 iPhone 通知中删除尝试
- javascript - Importing external libraries in Postman
- java - JavaFX: where is the best place to declare nodes of controller
- node.js - Error: Timed out while waiting for handshake in Lambda logs
- c++ - 在 Linux 上部署 Qt
- c# - 如何使用 Automapper 将复杂的嵌套对象映射到简单的对象?
- sql - unexpected output from sql query -oracle