https://dropmefiles.com/MchK8,这是我的代码。 为什么selectMembers为空并且当我直接执行协议时,它会发布数据? 我该如何使用Selectedmembers?
componentDidMount() {
const {members} = this.props;
const selectedMembers = [];
this.getProtocolsDetails(this.props.protocol.id);
this.setState({isLoading: true});
console.log(protocol);
// if (!isNull(protocol.members) && protocol.members.length) {
// protocol.members.map(member => {
// selectedMembers.push({
// label: member.fullName,
// value: member.code
// });
// });
// }
}
getProtocolsDetails(id) {
ProtoApi.getProtocolById(id)
.then(protocol => {
this.setState({protocol}, () => {
});
})
.catch(() => {
});
}
<AutoComplete label="Участники"
placeholder="Выберите участников"
searchApi={this.onSearchMembers}
onUpdate={this.onChooseMember}
onDeleteItem={this.onDeleteMember}
multiple={true}
dataSource={selectedMembers}
error={!isUndefined(errors.members)}
helperText={!isUndefined(errors.members) ? errors.members : null}/>
当我编辑此元素时,我想获取并显示数据。array中的memberMembers成员看起来像是空的,但是如果我没有空selectedMembers
,它就显示为this
答案 0 :(得分:0)
第一个请求之后,您将数据保存在this.state.protocol
中,但仅在console.log
中显示在protocol
中。
第二个componentDidMount
将不等待api响应,您应该使用componentDidUpdate
或替换getProtocolsDetails
中的逻辑