【发布时间】:2018-05-03 06:53:37
【问题描述】:
我推荐了 this 、 this 和 this 链接以找到解决方案,但它们都不适合我。
我已经清除了数组类型的状态和 null 的其他状态。
this.state = { from: '', to: '',journeyDate: '',searchDetails: [] }
当用户使用来源城市、目的地城市和旅程日期填写搜索表单时,我将这些状态设置如下。
let from = this.state.from;
let to = this.state.to;
let journeyDate = moment(this.state.journeyDate).format('YYYY-MM-DD');
将这些所有变量推入 searchDetails 数组状态的最后一步。为此,我尝试了以下选项,但都没有奏效。
选项 1
this.setState({ searchDetails: [...this.state.searchDetails, from] });
选项 2
this.setState(prevState => ({
searchDetails: [...prevState.searchDetails, from]
}))
选项 3
let newState = this.state.searchDetails.slice();
newState.push(from);
this.setState({
searchDetails: newState
});
console.log('final state is : ' + this.state.searchDetails);
每次控制台日志都是空的。
有什么建议吗?
【问题讨论】:
-
你能提供你的组件的完整代码吗?另外,您检查和 from、to 和 JourneyDate 是否有值?我看到您从状态中获取这些值并更新数组(searchDetails),但是您将值推入状态的位置?
-
@Umesh from , to 和 JourneyDate 状态设置完美,我也安慰他们。所以没有问题。