У меня есть эта функция для извлечения пользовательских данных, таких как в коде ниже.
constructor(props){
super(props);
this.state = {
user_id: this.props.navigation.state.params.user_id,
user: null
}
}
componentWillMount(){
this.loadUserDetail()
}
loadUserDetail(){
AccountController.loadUserDetail(this.state.user_id).then(data=>{
if(data.status == true){
this.setState({ user: data.user })
}
})
}
Из функции loadUserDetail()
я устанавливаю пользовательские данные в состояние, и результат this.state.user
выглядит следующим образом:
{ company_name: 'Universal Sdn Bhd', address: 'test', company_desc: 'test' }
Итак, я пытаюсь отобразить эти данные в моем render (), напрямую указав объект типа this.state.user.company_name
, но он не работает.
Вот как выглядел мой рендеринг:
render() {
return (
<View style={{flex: 1}}>
<Text style={{ fontSize: 20, fontWeight: 'bold' }}>{ this.state.user.company_name }</Text>
</View>
)
}
Отображение данных, как в коде, выдает эту ошибку
TypeError: null не является объектом (оценивается как this.state.user.company_name)
Я могу отображать данные, если я сохраняю каждое конкретное значение в состоянии после извлечения данных в функции loadUserDetail()
, но если, скажем, у меня много данных в моем массиве, тогда я должен устанавливать каждый из них из них в состоянии, и я хочу избежать этого.