React:更新对象后,对象内的数组不会被替换

时间:2017-03-06 07:14:17

标签: reactjs react-native

我有一个包含数组// Trim right String z = "\n\nfrom the end\n\n"; System.out.println("-" + z.split("\\n+$", 2)[0] + "-"); 的对象firstOccurrence,我最初设置为一个空数组。然后我做一个AJAX请求并替换整个对象extras,除了没有被替换并保持为空的数组之外,它可以正常工作。

如何替换整个对象,包括数组?

firstOccurrence

JSON回复:

enter image description here

1 个答案:

答案 0 :(得分:1)

您应该在函数componentDidMount而不是构造函数中发出请求:

 constructor() {
    super();

    this.state = {
      firstOccurrence: {
        customer: {},
        job: {},
        extras: []
      }
    };
 }

  componentDidMount(){
    axios.get(
      `http://api.test.dev:5000/crew/v1/jobs/1.json`          
    ).then(response => {this.setState({
      firstOccurrence: response.data
    })});
  }

will be called when the component is mounted,您将能够在那里设置状态并触发重新渲染。您应该记住,firstOccurrence将具有您在第一个渲染中的构造函数中设置的初始值,然后在API调用完成并且设置新值时将重新呈现该组件。