如何在反应中声明全局变量?

时间:2015-12-23 05:42:38

标签: reactjs

我必须在render方法中声明x变量并在外部方法中使用。

    var x = document.getElementById('pick').value

但它的错误显示x未定义。如何以其他方式定义它?谢谢。这是完整代码

handleSelect(key) {

if(key == 1){
    window.location.href = '/portfolio.html?'+x;
}

if(key == 2){ 
    window.location.href = '/transaction.html?'+x;
}
},

render:function() {

return (
  <div>
  <Tabs activeKey={this.state.key} onSelect={this.handleSelect}>
    <Tab eventKey={0} title="home"> </Tab>
    <Tab eventKey={1} title="Tab 1">Tab 1 content</Tab>
    <Tab eventKey={2} title="Tab 2">Tab 2 content</Tab>
    <Tab eventKey={3} title="Tab 3">Tab 3 content</Tab>
  </Tabs>

  <h1>here is your portfolio list</h1> <br/>

  <select id="pick">
    { 
      this.state.data.map(function(data) {  
        return <option value={data.id}>{data.name}</option>               
      })
    }

  </select>
    {

       if(this.state.data.length > 0)
        window.x = document.getElementById('pick').value

    }
 </div> 
 );
 }

2 个答案:

答案 0 :(得分:1)

如果您使用的是基于Common JS的模式,则使用module.exports,默认情况下,任何变量都是本地的。忽略你正在尝试做的不是推荐的做法,你应该能够通过声明为 -

使其工作
window.somevar = value;

并像 -

一样使用它
if (window.someVar){...}

答案 1 :(得分:0)

您可以设置不带var

的全局变量
 x = document.getElementById('pick').value
or
window.x = document.getElementById('pick').value