如何从数组中获取数据?无法从数组中获取const中的数据

时间:2019-02-10 10:33:45

标签: reactjs

This is data array protocols

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

1 个答案:

答案 0 :(得分:0)

第一个请求之后,您将数据保存在this.state.protocol中,但仅在console.log中显示在protocol中。

第二个componentDidMount将不等待api响应,您应该使用componentDidUpdate或替换getProtocolsDetails中的逻辑