Javascript React native:listview的setstate,但对象仍返回未定义
从下面的代码中,我试图使数据源返回一个字符串,但它的返回未定义Javascript React native:listview的setstate,但对象仍返回未定义,javascript,react-native,Javascript,React Native,从下面的代码中,我试图使数据源返回一个字符串,但它的返回未定义 constructor(props) { super(props) this.state = { uuid : this.props.navigation.state.params.uuid, facilityData: [], dataSource : [] }; } componentDidMount() { facilityStore.getFa
constructor(props) {
super(props)
this.state = {
uuid : this.props.navigation.state.params.uuid,
facilityData: [],
dataSource : []
};
}
componentDidMount() {
facilityStore.getFacilityInfo(this.state.uuid)
.then((res) => {
this.setState({
facilityData: res.data.data
})
{this.checkparticipants()}
})
.catch((error) =>{
alert(error);
})
};
checkparticipants(){
var ds = new ListView.DataSource({rowHasChanged: (r1,r2) => r1!=r2});
this.setState({
dataSource : ds.cloneWithRows([
{invitePlaceholder : "Participant"},
{invitePlaceholder : "Participant"},
{invitePlaceholder : "Participant"},
{invitePlaceholder : "Participant"},
])
})
console.log(this.state.dataSource.invitePlaceholder)
}
我想根据listview的数量呈现textinput,但有一个错误:
TypeError:undefined不是对象
}
/>
那么我应该怎么做才能使对象不被代码定义?
setState
是一种异步方法。因此,为了使任何东西处于状态,我认为需要在设置状态后执行checkParticipants
。这是作为setState
的回调完成的:
facilityStore.getFacilityInfo(this.state.uuid)
.then((res) => {
this.setState({ facilityData: res.data.data }, this.checkparticipants)
})
未调用,因为语法错误。
您的组件安装生命周期应为:
componentDidMount() {
facilityStore.getFacilityInfo(this.state.uuid)
.then((res) => {
this.setState({
facilityData: res.data.data
},
() => this.checkparticipants());
})
.catch((error) =>{
alert(error);
});
}
setState
是一种异步方法。完成状态设置后,调用checkparticipants()
this.checkparticipants()
componentDidMount() {
facilityStore.getFacilityInfo(this.state.uuid)
.then((res) => {
this.setState({
facilityData: res.data.data
},
() => this.checkparticipants());
})
.catch((error) =>{
alert(error);
});
}