Reactjs 无法从componentDidMount中调用setState

Reactjs 无法从componentDidMount中调用setState,reactjs,Reactjs,我总是收到这样的信息: 警告:设置状态(…):只能更新已安装或正在安装的 组成部分。这通常意味着您在未安装的服务器上调用了setState() 组成部分。这是禁止操作。请检查管理员代码 组成部分 当我使用setState外部componentDidMount功能时 这是我的源代码: class Admin extends React.Component { constructor(props) { super(props); this.state = {

我总是收到这样的信息:

警告:设置状态(…):只能更新已安装或正在安装的 组成部分。这通常意味着您在未安装的服务器上调用了setState() 组成部分。这是禁止操作。请检查管理员代码 组成部分

当我使用
setState
外部
componentDidMount
功能时

这是我的源代码:

class Admin extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            mainModal: false,
            itemId: null,
            bulkRemove: true,
            params: {},
            defaultRole: null,
            dataLoaded: store.getState().adminReducer.list.length?true:false
        };
        this.list = this.list.bind(this);
        this.toggleModal = this.toggleModal.bind(this);
        this.handleFilter = this.handleFilter.bind(this);
        this.handleCheck = this.handleCheck.bind(this);
        this.handleCheckAll = this.handleCheckAll.bind(this);
        this.handleRemove = this.handleRemove.bind(this);
        this.handleChange = this.handleChange.bind(this);
        this.handlePageChange = this.handlePageChange.bind(this);

        this.filterTimeout = null;
    }

    componentDidMount(){
        ...
        this.list();
        // this.setState({dataLoaded: true}); // OK when call here
        ...
    }

    list(outerParams={}, page=1){
        let params = {
           page
        };

        if(!isEmpty(outerParams)){
            params = {...params, ...outerParams};
        }

        Tools.apiCall(apiUrls.list, params, false).then((result) => {
            if(result.success){
                console.log(this);
                // output of above console.log -> Admin {props: Object, context: undefined, refs: Object, updater: Object, state: Object…}
                // this.setState({dataLoaded: true}); // Error when call here or inside setInitData function
                this.setInitData(result);
            }
        });
    }
}

当我使用babel preset
es2015
时,一切正常,但与
es2016
es2017
的错误相同

调用
list()
方法的是什么,调用组件时组件的状态是什么?错误消息基本上是告诉您在未初始化的组件上调用了它-您在定义“state”之前调用了
setState()
。我在componentDidMount函数中调用了。我想在这里面,组件已经初始化了。啊哈-对不起,我错过了。您是否在构造函数中绑定了此.list?react组件上的方法不会自动绑定,因此当您访问它时,
可能不再是您所认为的。我已更新了代码。我在构造函数中绑定了这个.list函数。当我在list()函数中输入console.log(this)时。我得到了正确的组件,但仍然无法设置状态。