componentdidmount不能与split函数和setState一起使用

时间:2017-04-18 08:57:53

标签: javascript reactjs

我有一个模式,只触发用户点击链接,在我有这个

的组件中
componentDidMount() {
    const { from_date, to_date } = this.props;

    let from_date_str = from_date.split(' ')[0],
    to_date_str = to_date.split(' ')[0];

    console.log(from_date_str);
}

这是有效的,但是当我尝试setState喜欢

componentDidMount() {
    const { from_date, to_date } = this.props;

    let from_date_str = from_date.split(' ')[0],
    to_date_str = to_date.split(' ')[0];

    this.setState({
        from_date_obj : from_date,
        to_date_obj : to_date,
        from_date : from_date_str,
        to_date: to_date_str
    })

}

我会收到Cannot read property 'split' of undefined的错误,感叹为什么会这样?

2 个答案:

答案 0 :(得分:0)

只需检查未定义。

let from_date_str = from_date && from_date.split(' ')[0],
    to_date_str = to_date && to_date.split(' ')[0];

希望这有帮助。

答案 1 :(得分:0)

此变量(" from_date")必须是字符串。

我认为你的" from_date"是整数还是空。

Check split of document