Javascript-React-返回多个值

Javascript-React-返回多个值,javascript,reactjs,Javascript,Reactjs,在我的React组件中,我有以下方法来保持状态和道具的同步: static getDerivedStateFromProps(nextProps, prevState) { return nextProps.filterName === prevState.filterName ? '' : { filterName: nextProps.filterName }; } 这是有效且有效的,但我还想在同一方法中添加第二行以更新另一个状态属性: return

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

    static getDerivedStateFromProps(nextProps, prevState) {
        return nextProps.filterName === prevState.filterName ? '' : { filterName: nextProps.filterName };
    }
这是有效且有效的,但我还想在同一方法中添加第二行以更新另一个状态属性:

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

如果我将filterName的现有return语句替换为saveChecked的这个语句,它就可以工作了。我在添加两个“return”语句时出错,表示它无效。有没有一种有效的方法可以重写它,以便更新这两个状态属性?

您可以在一个单独的对象中创建一个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

 }

属性排列符号在我的项目中不起作用,我是否需要用某种东西替换Object和obj?它们没有定义。谢谢尝试将…newState替换为Object.assign(newState)您可以在项目中设置排列语法,请选中。否则你可以写,
Object.assign({},newState,{saveChecked:nextProps.saveChecked})
你能分享一下你期望的输出吗?