jeudi 10 janvier 2019

React Native - Unable to pass CheckBox value the other screen

I'm here to ask what's your idea to properly pass a CheckBox value to other screen?

Example, if a user checks a CheckBox then proceed to the Next Screen the value of the CheckBox should be displayed in that screen.

But in my code, my console.log gives an output of false(I don't understand why) and once I get to the next screen the state doesn't really pass because it's display is blank.

Here's my code

export default class tables extends Component {
constructor(props){
    super(props)
    this.state = {
        ...
        check: {},
        tbl_Merge: []
    }
}

proceed_TO_Category = () => {
    this.props.navigation.navigate('Category', {
        userName    : this.state.userName,
        DineIn      : this.state.DineIn,
        tbl         : this.state.tbl,
        tbl_2nd     : this.state.tbl_2nd,
        tbl_Merge   : this.state.tbl_Merge
    });
    console.log("CHECK ======> "+ this.state.tbl_Merge);
}

checkBox_Test = (table_NO) => {
    const tbl_Merge = this.state.tbl_Merge;
    const checkCopy = {...this.state.check}
    if (checkCopy[table_NO]) {
        checkCopy[table_NO] = false;
    } else {
        checkCopy[table_NO] = true;
    }
    this.setState({ check: checkCopy });
    this.setState({ tbl_Merge: table_NO == this.state.tbl_Merge });
}

render() {
    return(
         <View>
              ....
              <Flatlist
                    ....
                    <CheckBox
                       value = { this.state.check[item.tbl_id] }
                       onChange = {() => this.checkBox_Test(item.tbl_id) }
                    />
                    ....
              />
              ....
                    <View>
                        <TouchableOpacity
                            onPress = {() => this.proceed_TO_Category()}>
                            <Text>Categories</Text>
                        </TouchableOpacity>
                    </View>
         <View/>
    )
}
}

Screen shot of Console.log in my proceed_TO_Category. Console.log




Aucun commentaire:

Enregistrer un commentaire