React Native - 将函数的返回值设置为组件的属性不起作用

时间:2017-06-06 14:20:52

标签: javascript android mobile react-native

我正在使用react native switch组件,并希望在另一台交换机的状态更改时以编程方式更改交换机的状态(开/关)。以下是我的代码:

update = (key: string, val: boolean) => {
    if(key == 'togglekey') {
        this.state.somekey = !val;
    }
};

<Switch onValueChange={(v) => this.update('somekey', v)} value={this.state.somekey} />

<Switch onValueChange={(v) => this.update('togglekey', v)} value={this.state.togglekey} />

当我点击togglekey开关时,我希望somekey开关能够打开或关闭,但它无效。有什么指针吗?

1 个答案:

答案 0 :(得分:1)

你不能直接改变状态。您必须使用setState,只有这样,React才会确认状态更新。

update = (key: string, val: boolean) => {
    if(key == 'togglekey') {
        this.setState({somekey: !val});
    }
};