0

我很困惑有什么this.state.data不同this.data

假设我有这样的代码:

componentWillMount(){
    console.log(this.props.navigation.state.params.list);
    api.get('my API Url')
    .then((response)=> {
      this.setState({data: JSON.parse(response.data)[0]})
      this.data=JSON.parse(response.data)[0]
    })
    .catch((err)=>{
      console.log("axios catching error")
      Alert.alert("failed", "Retry to retrieve from API", [{text:'OK', onPress:()=>{this.componentWillMount()}}])
      console.log(err)
    })
  }

constructor(props){
    super(props); 
    this.state ={ data:[] }
    this.data=[]
  }

class Visit extends React.Component {
  render() {
    if (this.data.length==0){
      return(
        <Loader/>
      )
    }
    return (
      <Text>Visit</Text>
    );
  }
}
export default Visit;

使用上面的代码,<Text>Visit</Text>this.data已经有一个数组时我无法渲染,但是this.state.data我的 App 可以渲染<Text>Visit</Text>

所以我想知道this.state.datawith的不同之处this.data

谁能解释我?

4

2 回答 2

1

this.state.datadata的是当前类的属性state,而this.datadata的是当前类的属性。

组件的状态是 React 环境的一个微不足道的部分,如果你不能理解这种差异,我建议你检查一下

我还建议你查看react 官方文档,React 中的几乎所有内容都适用于 React Native,对我来说,React Native 与 React 几乎相同,唯一的区别是你在 RN 中有更多有限的组件。我们可以说 RN 是 React 的一个子集

注意:属性或属性与propsReact 规范中定义的组件不同

于 2018-04-27T02:54:51.390 回答
0

就 React 而言,最好利用状态。this.state.datadata存储在当前组件状态中的 prop。您可以通过调用该setState方法来设置该值。另一端,this.datadata的是当前类的prop。您可以像更改 Javascript 中的其他类变量一样更改其值。

于 2018-04-27T03:00:03.250 回答