Javascript 使用React中的setState更新对象
如何将多个状态传递给Javascript 使用React中的setState更新对象,javascript,reactjs,Javascript,Reactjs,如何将多个状态传递给setState?下面是一个例子: getInitialState: function() { return { list: [], newFilm: {}, searchWord: '', searchDetails: {} } }, componentDidMount: function() { this.setState({ searchDetails:someData, newFilm: 'I am fir
setState
?下面是一个例子:
getInitialState: function() {
return {
list: [],
newFilm: {},
searchWord: '',
searchDetails: {}
}
},
componentDidMount: function() {
this.setState({
searchDetails:someData,
newFilm: 'I am first text',
})
}
问题是:
这个例子在语法上正确吗 设置状态的方式没有语法问题,但初始化状态的方式可能有问题。您已将newFilm初始化为对象状态,但当您设置其状态时,将给出一个字符串。因此,假设您尝试像
{this.state.newFilm}
那样渲染它,它将抛出一个错误
对象作为React子对象无效(找到:具有键{}的对象)
正如您在下面的代码段中所看到的,由于第一次呈现组件时,它会看到一个对象,之后它只显示一个字符串
若要解决此问题,请尝试将新电影
初始化为'
,或在尝试渲染时采取预防措施,即检查其中包含某些数据的位置,然后仅渲染
另外,我没有看到组件didmount
函数中定义的某些数据。您需要先定义它,然后才能使用它
var-App=React.createClass({
getInitialState:函数(){
返回{
名单:[],
新电影:{},
搜索词:“”,
searchDetails:{}
}
},
componentDidMount:function(){
var someData={'name':'abc'};
这是我的国家({
searchDetails:someData,
新电影:《我是第一个文本》,
})
},
render:function(){
console.log(this.state.newFilm);
返回(
{this.state.newFilm}
)
}
})
ReactDOM.render(,document.getElementById('app'))代码>
你就是这样做的。请回顾一下:对不起,Piotr,但这对我有什么帮助?我对这个问题进行了编辑,但这是对我认为你想问的问题的松散解释。目前还不清楚您发布的当前代码有什么问题。它工作不正常吗?为什么?有错误吗?你目前面临的问题是什么?