React Native传递道具

时间:2016-02-17 22:47:50

标签: android properties react-native

很难弄清楚为什么我无法访问我应该访问的变量。

我有一个构造函数

 constructor(props) {
      super(props);
      this.state = {
         endpoint:props.url
      };
      console.log(props.url);// Prints url as intended
      console.log(this.state.endpoint);// Also prints as intended

}

现在你会认为这只会延续到componentDidMount,但它不会?我以为构造函数应该用状态启动一些东西?

 componentDidMount(){
    fetch(this.state.endpoint).then(etc....)
    // this fails.  If I do console.log(this.state.endpoint) I get undefined.
 }

如何让端点在fetch函数中工作?

2 个答案:

答案 0 :(得分:1)

我真的没有看到你的代码不起作用的任何理由,但试试这个......

class MyComponent extends React.Component {
  constructor(props){
    super(props)
  }

  componentDidMount(){
    fetch(this.props.url)
      .then( response => console.log(response) )
  }

}

答案 1 :(得分:0)

只应在已安装的组件或插入dom的组件上设置状态。如果您未在视图中使用状态,则无法保证何时正确更新。你为什么把它设置为状态?只需创建一个变量。

编辑:或者为什么不在componentdidmount中使用this.props.url?