Javascript - React - 返回多个值

时间:2018-04-30 18:38:46

标签: javascript reactjs

在我的React组件中,我有以下方法来保持状态和道具同步:

    static getDerivedStateFromProps(nextProps, prevState) {
        return nextProps.filterName === prevState.filterName ? '' : { filterName: nextProps.filterName };
    }

这是有效且有效的,但我想在同一方法中添加第二行来更新另一个状态属性:

   return nextProps.saveChecked === prevState.saveChecked ? false : { saveChecked: nextProps.saveChecked };

如果我用saveChecked替换filterName的现有return语句,它就可以了。添加两个“return”语句时,我收到一个错误,它是无效的。有没有一种有效的方法来重写它,以便可以更新两个状态属性?

1 个答案:

答案 0 :(得分:0)

您可以在单独的对象中创建一个newState,然后立即返回它;

 static getDerivedStateFromProps(nextProps, prevState) {
    const newState = {}; 
    if(nextProps.filterName !== prevState.filterName) { 
        newState =  {...newState, filterName: nextProps.filterName };
    }
    if(nextProps.saveChecked !== prevState.saveChecked) {
        newState = {...newState, saveChecked: nextProps.saveChecked }
    }
    //check if the object is not empty
    if(!(Object.keys(obj).length === 0 && obj.constructor === Object)) {
        return newState;
    }
    return null

 }