Reactjs 无法显示更新的阵列数据

Reactjs 无法显示更新的阵列数据,reactjs,Reactjs,我有一个数组List,我正在使用.push()方法向其中添加新元素,然后concat在Onclickadd方法中使用List输入,但它不会更新数组以显示待办事项中的项目 import React from 'react' import './App.css' class App extends React.Component { constructor(){ super() this.state={ List: ['potato'] } }

我有一个数组
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;


从“React”导入React
导入“./App.css”
类应用程序扩展了React.Component{
构造函数(){
超级()
这个州={
列表:[“土豆”]
}
}
onAddChange=(事件)=>{
这是我的国家=({
输入:event.target.value
})
}
Onclickadd=()=>{
console.log('clicked')
this.setState=({List:this.state.List.concat(this.state.input)})
}
渲染(){
返回(
待办事项清单
添加
{this.state.List.map((项、键)=>{
返回
  • {items}
  • })} ); } } 导出默认应用程序;
  • 我建议您向输入中添加
    value={this.state.input}
    ,如下所示:
  • this.setState()
    的语法不正确,如下所示:
  • this.setState({List:this.state.List.concat(this.state.input)})

    this.setState({input:event.target.value})
    this.setState
    是一个需要对象的函数,您试图赋值,而不是关闭
    this.setState=
    使用

    this.setState({
    输入:event.target.value
    })
    
    类应用程序扩展了React.Component{
    构造函数(){
    超级()
    这个州={
    列表:[“土豆”]
    }
    }
    onAddChange=(事件)=>{
    这是我的国家({
    输入:event.target.value
    })
    }
    Onclickadd=()=>{
    this.setState({List:this.state.List.concat(this.state.input)})
    }
    渲染(){
    返回(
    待办事项清单
    添加
    {this.state.List.map((项、键)=>{
    返回
  • {items}
  • })} ); } } render(,document.body)
    此.setState=…
    是您代码中的问题。这是一个函数调用,没有使用
    =
    赋值

    你在两个地方犯了同样的错误

    onAddChange
    更改为

    onAddChange=(event)=>{ 
          this.setState({
                 input: event.target.value
              })
        }
    
     Onclickadd=()=>{
           console.log('clicked')
           this.setState({List: this.state.List.concat(this.state.input)})
        }
    

    onclick添加到

    onAddChange=(event)=>{ 
          this.setState({
                 input: event.target.value
              })
        }
    
     Onclickadd=()=>{
           console.log('clicked')
           this.setState({List: this.state.List.concat(this.state.input)})
        }
    
    工作示例=>

    this.setState(…)
    而不是
    this.setState=()
    this.setState(…)给了我类型错误:this.setState不是一个函数在这段代码中没有
    .push()
    ,我想这是因为你不应该直接用push更新
    状态,如果您添加推送在其上使用的代码部分,则会更好