更新component中的状态将收到Props,其中state是一个数组

时间:2018-12-28 10:05:10

标签: javascript reactjs

我有一个数组作为状态。

let coursedata=[];
class XYZ extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      coursedata
    };
  }

  componentWillReceiveProps(newProps) {
    if (newProps.course.courses.data) {
      const newstate = [
        ...this.state.coursedata,
        newProps.courses.courses.data
      ];
      this.setState({
       coursedata: newstate
    });
  }
}

请不要说newProps.course.courses.data是对象数组。我的目标是将状态作为对象数组。

1 个答案:

答案 0 :(得分:0)

我假设您要将newProps.course.courses.data连接到state.courseData。如果是这样,简单的解决方案将是:

componentWillReceiveProps(newProps) {
    const {courseData} = this.state;
    if(newProps.course.courses.data) {
        return this.setState({
            courseData: courseData.concat(newProps.course.courses.data),
        });
    }
}