Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.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/22.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 JS/Reactjs-访问从顶级函数传递的参数_Javascript_Reactjs_Variables_Global - Fatal编程技术网

Javascript JS/Reactjs-访问从顶级函数传递的参数

Javascript JS/Reactjs-访问从顶级函数传递的参数,javascript,reactjs,variables,global,Javascript,Reactjs,Variables,Global,正在尝试将状态person\u id分配给正在外部传递的id。我甚至可以在pBox中输出数据,但数据在React的子函数中丢失。我试过做var self=this分配,但没有效果。当涉及到JS时,我对范围感到迷茫 当前,id被getInitialState(id)的参数隐藏,并且变得未定义,因为调用getInitialState时没有任何参数 因此,删除该参数,就可以使用getInitialState()中的pBox方法中提供的id 函数getInitialState需要id的参数。如果它没有收

正在尝试将状态
person\u id
分配给正在外部传递的
id
。我甚至可以在
pBox
中输出数据,但数据在React的子函数中丢失。我试过做
var self=this
分配,但没有效果。当涉及到JS时,我对范围感到迷茫

当前,
id
getInitialState(id)
的参数隐藏,并且变得
未定义
,因为调用
getInitialState
时没有任何参数

因此,删除该参数,就可以使用
getInitialState()
中的
pBox
方法中提供的
id


函数
getInitialState
需要
id
的参数。如果它没有收到一个,则该本地作用域中仍然有一个
id
,但它包含
未定义的
。正如@Shuhei所提到的,从函数中删除该参数或给它一个不同的名称将允许您在更高的范围内访问
id

为了便于阅读,我建议您将React.CreateClass分离到另一个函数中

您的新函数如下所示:

pBox: function(id) {    
    console.log('inside pBox: '+ id);
    return React.createClass({
        getInitialState: function() {
            console.log('inside getInitialState: '+ id);
            return {
                person_id: id
            }
        },
function foo(id){
  console.log('inside pBox: '+ id);
  return React.CreateClass({...}) //Same code you had before
}
您的代码将如下所示:

pBox: function(id) {    
    console.log('inside pBox: '+ id);
    return React.createClass({
        getInitialState: function() {
            console.log('inside getInitialState: '+ id);
            return {
                person_id: id
            }
        },
function foo(id){
  console.log('inside pBox: '+ id);
  return React.CreateClass({...}) //Same code you had before
}

getInitialState
甚至没有传递任何参数,因此应该将其保留为空