React Native - Чем отличается this.state.data от this.data? - PullRequest
0 голосов
/ 27 апреля 2018

Я был смущен, в чем разница 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 мое приложение может отображать <Text>Visit</Text>,

так что я хочу узнать другое о this.state.data с this.data,

Кто-нибудь может мне объяснить?

Ответы [ 2 ]

0 голосов
/ 27 апреля 2018

Для целей React лучше всего использовать государство. this.state.data относится к data реквизиту, сохраненному в текущем состоянии компонента. Вы можете установить значение, вызвав метод setState. С другой стороны, this.data относится к data реквизиту текущего класса. Вы можете изменить его значение так же, как и другие переменные класса в Javascript.

0 голосов
/ 27 апреля 2018

this.state.data относится к data свойству текущего класса state, а this.data относится к data свойству текущего класса.

Состояние компонента является тривиальной частью среды React, и если вы не можете понять эту разницу, я предлагаю вам проверить это .

Я также предлагаю вам проверить реагировать на официальные документы , почти все из React применимо к React Native, для меня React Native почти такой же, как React, единственное отличие состоит в том, что у вас более ограниченные компоненты в RN. Можно сказать, что RN является подмножеством React

Примечание: свойство или свойства не совпадают с props компонента, определенного в спецификациях React

...