簡體   English   中英

在react native應用程序中(已選中或未選中)保存/保持CheckBox的狀態/為復選框提供了無效的prop

[英]Save / keep the state of the CheckBox in react native application (checked or unchecked ) / Invalid prop supplied to checkbox

我只是在我的本機應用程序中從本機基礎實現了復選框組件。 每次我選中/取消選中該復選框時,都會有一些變量更改其狀態(是或否),然后進行存儲。 根據存儲在asyncStorage中的值,我可以在應用程序中進行一些更改,並且效果很好。

我現在面臨的問題是:我需要在使用該應用程序時保持復選框處於選中狀態/未選中狀態(即使從一個頁面更改為另一個頁面),並且在用戶未進行更改的情況下它不能更改(它總是在返回)更改頁面后恢復為默認值),我將變量存儲為字符串,但顯然復選框僅接受布爾變量。 PS:我試圖將狀態存儲為布爾值,但它不起作用這是代碼:

constructor(props) {
        super(props);
        this.state ={ status: false }
};

 toggleStatus() 
{
        this.setState({
            status: !this.state.status
        });
     AsyncStorage.setItem("myCheckbox",JSON.stringify(this.state.status));
}

render(){
return(

.... 
    <CheckBox checked={this.state.status}
              onPress={() => this.toggleStatus()} />

);}

我什至試圖改變這種狀態:

componentWillMount(){
        AsyncStorage.getItem('myCheckbox').then((value) => {
            JSON.parse(value)
            this.setState({
                status: value
            });
            if (this.state.status == 'false') {
                this.setState({
                    status: false
                });
            }
            else if (this.state.status == 'true') {
                this.setState({
                    status: true
                });
            }
            else {
                this.setState({
                    status: false
                });
            }   
        });

    }

但是,它不斷拋出警告: 在此處輸入圖片說明

我復制了您的代碼(位於: https : //snack.expo.io/SJSzZzvbW ),但沒有發現類型不是布爾值的任何原因。 您是否在代碼中的其他任何地方操縱狀態?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM