代码之家  ›  专栏  ›  技术社区  ›  Yas

为什么不是一个函数

  •  0
  • Yas  · 技术社区  · 7 年前

    这道具。许诺则不是函数错误。为什么?

    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} />
    

    这状态数据是一个数组

    提前感谢!

    1 回复  |  直到 7 年前
        1
  •  3
  •   linasmnew    7 年前

    这道具。许诺则不是函数错误。为什么?

    因为不管你传递给你的组件是什么 promise 实际上没有承诺。

    既然你提到了 typeof this.props.promise object

    someObjectNamedPromise.then( ... )

    从那以后 someObjectNamedPromise then 如果指向一个函数,你会得到一个错误,这个错误告诉你。