React Native - Чем отличается this.state.data от this.data?
Я был смущен, в чем разница 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 ответа
this.state.data
относится к data
свойство текущего класса state
, в то время как this.data
относится к data
свойство текущего класса.
Состояние компонента является тривиальной частью среды React, и если вы не можете понять это различие, я предлагаю вам проверить это.
Я также предлагаю вам проверить реакцию официальных документов, почти все, что касается React, применимо к React Native, для меня React Native почти такой же, как React, с той лишь разницей, что у вас более ограниченные компоненты в RN. Мы могли бы сказать, что RN является подмножеством React
Примечание: свойство или свойства не совпадают со свойствами компонента props
определено в спецификации React
Для целей React лучше всего использовать государство. this.state.data
относится к data
Проп хранится в текущем состоянии компонента. Вы можете установить значение, вызвав setState
метод. На другом конце this.data
относится к data
опора текущего класса. Вы можете изменить его значение так же, как и другие переменные класса в Javascript.