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