React Native - this.state.data 与 this.data 有何不同?

React Native - What's the different about this.state.data with this.data?

我很困惑 this.state.datathis.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;

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

所以我想知道 this.state.datathis.data,

的区别

谁能给我解释一下?

this.state.data指当前classstatedata属性,而this.datadata属性 当前 class。

一个组件的 State 是 React 环境的一个微不足道的部分,如果你不能理解这个区别我建议你检查 this.

我还建议你检查一下react official docs,几乎所有来自 React 的东西都适用于 React Native,对我来说,React Native 几乎和 React 一样,唯一的区别是你在 RN 中有更多有限的组件。我们可以说 RN 是 React

的一个子集

注意:属性 或属性与 React 规范

中定义的组件 props 不同

为了 React 的目的,最好利用状态。 this.state.data 指的是当前组件状态中存储的 data prop。您可以通过调用 setState 方法来设置该值。另一方面,this.data 指的是当前 class 的 data prop。您可以像更改 Javascript.

中的其他 class 变量一样更改其值