Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 为什么不是一个函数_Reactjs_Asynchronous_React Props - Fatal编程技术网

Reactjs 为什么不是一个函数

Reactjs 为什么不是一个函数,reactjs,asynchronous,react-props,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({

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是一个数组

提前谢谢

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}));
}
因为无论您传递给名为
promise
的组件的内容是什么,实际上都没有承诺

由于您提到this.props.promise的
类型返回一个
对象
,因此您可以将您的代码视为基本上是这样做的:

someObjectNamedPromise。然后(…)

由于
someObjectNamedPromise
没有一个名为
然后
的属性指向一个函数,因此会出现一个错误,告诉您这一点

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}));
}
因为无论您传递给名为
promise
的组件的内容是什么,实际上都没有承诺

由于您提到this.props.promise的
类型返回一个
对象
,因此您可以将您的代码视为基本上是这样做的:

someObjectNamedPromise。然后(…)


由于
someObjectNamedPromise
没有一个名为
的属性,那么
就指向了一个函数,因此会出现一个错误,告诉您这一点。

检查
类型(this.props.promise)
是什么,以及它包含什么。看起来像是传递给构造函数的坏数据?为什么希望数组的行为像承诺?这是一系列的承诺吗?如果是,请使用
Promise。all
Typeof返回一个对象。传递的数组是从API异步构造的。请检查
Typeof(this.props.Promise)
是什么,以及它包含什么。看起来像是传递给构造函数的坏数据?为什么希望数组的行为像承诺?这是一系列的承诺吗?如果是这样,请使用
Promise.all
Typeof返回一个对象。传递的数组是从API异步构造的。谢谢Linas!你说的道具不是承诺是对的。我将API调用中的URL保存到父组件的状态,然后将其作为道具传递。为了让道具成为承诺,我只是让道具等同于API URL调用。现在它就像一个符咒!谢谢你,丽娜!你说的道具不是承诺是对的。我将API调用中的URL保存到父组件的状态,然后将其作为道具传递。为了让道具成为承诺,我只是让道具等同于API URL调用。现在它就像一个符咒!