目前我的代碼正在離開我放入交換機的任何默認值並且不會改變它。 onValueChange被觸發,我從中得到正確的值,但不管我做什麼,開關移動並返回到默認位置,就像沒有更新狀態。React Native - 開關沒有改變值
主要的代碼,我想用的是這樣一個:
<Switch style={styles.select} value={this.state.banks[rowData.code].status} onValueChange={(newValue) => this.saveValue(rowData,newValue)}/>
saveValue = (rowData,newValue) => {
//var row = rowData[Object.keys(rowData)[0]];
rowData.status = newValue;
this._sh.set('@Banks:'+rowData.code,newValue.toString()).then(
(result) => {
this._banks[rowData.code].status = newValue;
this.setState({
banks: this._banks
});
}
);
return newValue;
}
起初我還以爲這是一個非常複雜的狀態的情況,所以我也嘗試了使用外排和一個普通視圖中(交換機而不是數據源)。我也嘗試過使用默認實現,就像在Switch的文檔示例中看到的一樣,並且不起作用。
我想通過iPhone 6s模擬器和真正的5s設備。還是一樣的行爲。
我打算認爲這是一個RN中的錯誤,但沒有找到任何相關的東西,我失去了我的想法,因爲這應該很容易。
最終,我所擁有的是一個帶有銀行列表的JSON文件,用戶可以選擇是否啓用該功能,並且使用該數組存儲這些值並使Switch從該狀態中獲取狀態。 _sh是來自AsyncStorage的StorageHelper包裝器,但我也從代碼中刪除了該部分,仍然是同一個問題。
任何輸入讚賞。