Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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
Javascript 反应-承诺-“承诺”;这";是未定义的_Javascript_Reactjs_React Redux_Es6 Promise - Fatal编程技术网

Javascript 反应-承诺-“承诺”;这";是未定义的

Javascript 反应-承诺-“承诺”;这";是未定义的,javascript,reactjs,react-redux,es6-promise,Javascript,Reactjs,React Redux,Es6 Promise,我肯定这是一个初学者的问题,但实际上我不明白为什么这个是未定义的。 但让我们从头开始。我正在使用react和react redux加载数据。在这种特殊情况下,我首先要加载项目的所有位置,然后加载验证文件。这是两个查询,所以我想确定,在开始加载验证之前,位置已完全加载。所以我想-哦,让我们在这里用一个promise 它从方法加载验证(事件)开始。在此方法中,将调用方法loadProjectPositions(event)。我可以看到项目位置已正确加载。 加载位置时,应先加载验证文件(。然后(()…

我肯定这是一个初学者的问题,但实际上我不明白为什么
这个
未定义的
。
但让我们从头开始。我正在使用
react
react redux
加载数据。在这种特殊情况下,我首先要加载项目的所有位置,然后加载验证文件。这是两个查询,所以我想确定,在开始加载验证之前,位置已完全加载。所以我想-哦,让我们在这里用一个
promise

它从方法
加载验证(事件)
开始。在此方法中,将调用方法
loadProjectPositions(event)
。我可以看到项目位置已正确加载。 加载位置时,应先加载验证文件(
。然后(()…
)。 实际上在这个
.then()
方法中,
这个
是未定义的,但是为什么呢

更新:

即使我在构造函数中绑定
loadVerifications
,它也不起作用。
保持
未定义

您应该使用bind(this)方法进行loadVerifications,从外部函数或
另一个是箭头函数loadVerifications=(event)=>{…}

好的,感谢所有提示和提示。最近发现,Chrome由于任何原因都没有显示数据,但数据是可用的。我只需添加一个
console.log(this.props)就可以找到
进入代码,然后它向我展示了所有的
道具
,我可以看到
这个
不是
未定义的

但真正的问题是,当时没有加载数据。因此我需要在方法
loadProjectPositions
中添加
then
,以确保在解析
承诺之前返回数据

loadProjectPositions(event) {
    return new Promise((resolve,reject) => {
      this.props.getProjektPositionenByProjektIdForModulId(13, event.value)
      .then(() => {
        resolve(this)
      });
    })
}

添加此项后,当时所有数据都已正确加载,然后全部工作。

我认为您还必须绑定
loadVerifications
函数。如果将
loadVerifications
定义为
loadVerifications=(事件)=>{…}
一切都将正常工作,您需要绑定
即使我在构造函数中绑定loadVerifications,它也不起作用。这仍然是未定义的。您是否像这样使用绑定:
this.loadVerifications=this.loadVerifications.bind(this);
?是的,正如我在上面所写的。即使我在构造函数中绑定loadVerifications,它也不起作用。这仍然是未定义的。使用箭头函数。如果您开始使用es6功能,您将不会面临这样的问题。
loadProjectPositions(event) {
    return new Promise((resolve,reject) => {
      this.props.getProjektPositionenByProjektIdForModulId(13, event.value)
      .then(() => {
        resolve(this)
      });
    })
}