在setState反应之后如何立即更新状态?

时间:2019-04-08 06:04:12

标签: javascript reactjs

我正在使用一些API调用创建一个React应用。我有以下代码来调用API,该API的对象带有多个键和值,并使用这些值更新某些状态。但是在更新状态之后,程序仍然显示初始状态,而不是更新值。当我将console.log放入状态回调内时,该控制台部分将丢失。 然后控制台说map不是ordered.map中的函数 所以我想命令的初始状态就是问题

组件:

class Dashboard extends Component {
  constructor(props) {
    super(props);
    this.state = {
      columns: '',
      ordered: 'null'
    };
  }

  componentDidMount() {
    API.get('project')
      .then(({ data }) => {
        this.setState({ 
          columns: data.response,
          ordered: Object.keys(data.response)
        } () => 
          console.log("order is ",this.state.ordered);
        );
      })
      .catch((err) => {
        console.log("AXIOS ERROR: ", err);
      })
  }

  render(){
     return(
       <div>\
         {(provided) => (
             <div ref={provided.innerRef} {...provided.droppableProps} className={classes.taskboard}>
               {ordered.map((key, index) => (
                  <Column
                    key={key}
                    index={index}
                    title={key}
                    tasks={columns[key]}
                    getCardId={this.getPojectId}
                  />
                ))}
             </div>
           )}
       </div>
     )
  }
}

API成功正在发挥作用。但是我在控制台中看到的是“订单为空”

0 个答案:

没有答案
相关问题