Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更新处于React上下文状态的单个项_Javascript_Node.js_Reactjs_State_React Context - Fatal编程技术网

Javascript 更新处于React上下文状态的单个项

Javascript 更新处于React上下文状态的单个项,javascript,node.js,reactjs,state,react-context,Javascript,Node.js,Reactjs,State,React Context,因此,我有以下格式的上下文: class UserProvider extends Component { constructor(props) { super(props) this.initialize = (details) => { this.setState(state => { //Setting each item individually here

因此,我有以下格式的上下文:

class UserProvider extends Component {
    constructor(props) {
        super(props)

        this.initialize = (details) => {
            this.setState(state => {
                //Setting each item individually here
                //e.g state.a = details.a
            })
        }

        this.editA = () => {
            this.setState(state => {
                //change A here
            })
        }

        this.editB = () => {
            this.setState(state => {
                //Change B here
            })
        }

        this.state = {
            a: null,
            b: null,
            editA: this.editA,
            editB: this.editB
        }
    }

    render() {
        return (
            <User.Provider value={this.state}>
                {this.props.children}
            </User.Provider>
        )
    }
}
类UserProvider扩展组件{
建造师(道具){
超级(道具)
this.initialize=(详细信息)=>{
this.setState(state=>{
//在此单独设置每个项目
//e、 g state.a=详细信息.a
})
}
this.editA=()=>{
this.setState(state=>{
//在这里换车
})
}
this.editB=()=>{
this.setState(state=>{
//在这里换车
})
}
此.state={
答:空,
b:空,
伊迪塔:这个,伊迪塔,
伊迪丝:这个,伊迪丝
}
}
render(){
返回(
{this.props.children}
)
}
}

所以对于每个状态,我都有一个单独的函数来更新它。如果我只想更新一个状态,我应该怎么做?

考虑实现一个通用函数,以便您可以控制您的键和相应的值

i、 e

函数调用

changeField('a','value_a')
changeField('b','value_b')

用户只需更新该字段,而不为其他人做任何事情。。this.setState({a:''value'})@EugenSunic当我想通过一个消费者访问它时,它不需要为每个字段使用单独的函数吗?你的意思是说,你只需要一个函数来更新一个字段,而不是为n个字段使用n个函数?
changeField('a','value_a')
changeField('b','value_b')