axios承诺中的setState - 没有重新渲染

时间:2017-04-11 10:15:40

标签: reactjs axios

我试图用mLab数据库编写任务管理器。我正在使用axios http客户端。问题是,当我尝试添加新任务时,应用程序不会重新渲染我必须手动刷新页面才能使其正常工作。

class App extends Component {
  constructor() {
    super()

    this.state = {
      tasks: []
    }
  }

addTask(text) {
    axios.request({
      method: 'post',
      url: 'https://exampleAPIaddress',
      data: {
        text: text,
        completed: false
      }
    }).then(response => {

      let tasks = this.state.tasks;
      tasks.push({
        _id: response.data._id,
        text: text,
        completed: false
      })
      this.setState = ({
        tasks: tasks
      })
    }).catch((error) => {
      console.log(error)
    })
  }

render() {
    return (
          <AddTask onAddTask={this.addTask.bind(this)} />
    );
  }
}

0 个答案:

没有答案