如何将对象添加到反应组件的状态?

时间:2018-03-23 12:51:08

标签: reactjs redux react-redux react-props

我从Api获得docker exec -it container_name /bash 并将其作为道具从object={x:[],y:[],z:[]}传递给<Acomponent/>之类的<Bcomponent/>。{/ p>

<Acomponent data={object}/>州是<Bcomponent/> 我希望将{a:[],b:[],c:[]}的数据道具添加到<Acomponent>

状态

(即)<Bcomponent/>的最终状态必须是

<Bcomponent/>

怎么做?

3 个答案:

答案 0 :(得分:1)

只需使用构造函数

class Bcomponent extends React.Component {
        constructor(props) {
            super(props);
            this.state = {
                a: [],
                b: [],
                c: [],
                x: props.data.x,
                y: props.data.y,
                z: props.data.z
            }
        }
        ...
    }
setState

componentWillReceiveProps

答案 1 :(得分:0)

您可以使用对象扩展语法来合并对象:

class Bcomponent extends React.Component {
    constructor(props) {
        super(props);

        const {data} = props;

        this.state = {
            a: [],
            b: [],
            c: [],
            ...data,
        }
    }

    // ...other functions
}

答案 2 :(得分:0)

state = {
 a: [], b: [], c: [], ...this.props.data
};

演示https://codesandbox.io/s/q30w3q97r9