Javascript 添加到数组中

Javascript 添加到数组中,javascript,html,arrays,reactjs,state,Javascript,Html,Arrays,Reactjs,State,要添加电影并将其推入Movie类内部的数组中。当我运行它时,会收到以下警告: js:2178警告:组件正在更改要控制的文本类型的非受控输入。输入元件不应从非受控切换到受控(反之亦然)。在组件的使用寿命内,决定使用受控或非受控输入元件。更多信息: 输入中(在index.js:41处) 标签中(在index.js:39处) 格式(索引js:38) 电影中(索引:js:50) 类电影扩展React.Component{ 建造师(道具){ 超级(道具); this.state={value:''}; t

要添加电影并将其推入
Movie
类内部的数组中。当我运行它时,会收到以下警告:

js:2178警告:组件正在更改要控制的文本类型的非受控输入。输入元件不应从非受控切换到受控(反之亦然)。在组件的使用寿命内,决定使用受控或非受控输入元件。更多信息: 输入中(在index.js:41处)

标签中(在index.js:39处)

格式(索引js:38)

电影中(索引:js:50)

类电影扩展React.Component{
建造师(道具){
超级(道具);
this.state={value:''};
this.state={list:[]};//此行显示警告
this.handleChange=this.handleChange.bind(this);
this.handleSubmit=this.handleSubmit.bind(this);
this.addMovie=this.addMovie.bind(this);
}
手变(活动){
this.setState({value:event.target.value});
}
handleSubmit(事件){
警报(“已提交电影:”+this.state.value);
event.preventDefault();
这个.addMovie();
}
addMovie(值){
this.setState({list:[…this.state.list,value]});
}
render(){
返回(
电影名称:
);
}
}
ReactDOM.render(
,
document.getElementById('root'))
);

构造函数中不能有多个
此.state

  constructor(props) {
    super(props);
    this.state = {value: '',list: []};

    this.handleChange = this.handleChange.bind(this);
    this.handleSubmit = this.handleSubmit.bind(this);
    this.addMovie = this.addMovie.bind(this);

  }
类应用程序扩展了React.Component{
建造师(道具){
超级(道具);
this.state={值:“”,列表:[]};
this.handleChange=this.handleChange.bind(this);
this.handleSubmit=this.handleSubmit.bind(this);
this.addMovie=this.addMovie.bind(this);
}
手变(活动){
this.setState({value:event.target.value});
}
handleSubmit(事件){
//警报(“已提交电影:”+this.state.value);
event.preventDefault();
这个.addMovie();
}
addMovie(){
让value=this.state.value;
this.setState({list:[…this.state.list,value],值:“”});
}
render(){
返回(
电影名称:
    {this.state.list!=[]&&this.state.list.map((行,i)=>
  • {row}
  • )}
); } } ReactDOM.render(,document.getElementById('root'))
构造函数中不能有多个
此.state

  constructor(props) {
    super(props);
    this.state = {value: '',list: []};

    this.handleChange = this.handleChange.bind(this);
    this.handleSubmit = this.handleSubmit.bind(this);
    this.addMovie = this.addMovie.bind(this);

  }
类应用程序扩展了React.Component{
建造师(道具){
超级(道具);
this.state={值:“”,列表:[]};
this.handleChange=this.handleChange.bind(this);
this.handleSubmit=this.handleSubmit.bind(this);
this.addMovie=this.addMovie.bind(this);
}
手变(活动){
this.setState({value:event.target.value});
}
handleSubmit(事件){
//警报(“已提交电影:”+this.state.value);
event.preventDefault();
这个.addMovie();
}
addMovie(){
让value=this.state.value;
this.setState({list:[…this.state.list,value],值:“”});
}
render(){
返回(
电影名称:
    {this.state.list!=[]&&this.state.list.map((行,i)=>
  • {row}
  • )}
); } } ReactDOM.render(,document.getElementById('root'))

您的代码表示,首先我希望我的
状态
对象具有属性
的状态。 然后,使用key
list
重新分配一个新的状态对象,并替换旧的状态。这是错误的,您应该在一个
状态
对象中定义多个属性,如下所示

this.state = {value: '', list: []}
您的代码表示,首先我希望我的
状态
对象具有属性
的状态。 然后,使用key
list
重新分配一个新的状态对象,并替换旧的状态。这是错误的,您应该在一个
状态
对象中定义多个属性,如下所示

this.state = {value: '', list: []}