那么为什么不是一个功能

时间:2017-11-18 22:27:21

标签: reactjs asynchronous react-props

this.props.promise.then不是函数错误。为什么呢?

constructor(props) {
    super(props);
    this.state = {
        loading: true,
        error: null,
        data: []
    };
}

componentDidMount() {
    this.props.promise.then(
        value => this.setState({loading: false, data: value}),
        error => this.setState({loading: false, error: error}));
}

组件调用:

<Child promise={this.state.data} />

this.state.data是一个数组

提前致谢!

1 个答案:

答案 0 :(得分:2)

  

this.props.promise.then不是函数错误。为什么呢?

因为您传递给名为promise的组件的任何内容实际上都没有承诺。

由于您提到typeof this.props.promise返回object,因此您可以将代码可视化为基本上这样做:

someObjectNamedPromise.then( ... )

由于someObjectNamedPromise没有一个名为then的属性指向某个功能,因此您会收到一个错误消息,告诉您这一点。