Proyek saya mengulang array data di komponen anak Main
, dan saya mencoba memperbarui status di komponen induk, App
, pada suatu acara (menggesek ke kanan pada kartu di Main
), sehingga saya dapat mengakses data itu telah 'digeser ke kanan' pada Komponen saudaranya di Favorites
. Semoga itu masuk akal?
Struktur proyeknya adalah sebagai berikut:
App
|__ Rootstack
|
|__Favorites
|__Main
Dalam komponen Main
saya, saya memetakan array collection
dan mengulangi:
collection = imagedata;
// a local JSON array of data that I am looping thru in Main
class Main extends React.Component {
_toFavs = () => {
this.props.navigation.navigate('Favorites');
};
render() {
const contents = collection.map((item, index) => {
return (
<Card key={index}>
......
</Card>
)
});
return (
<View>
<CardStack
onSwiped={() => {console.log('onSwiped')}
onSwipedRight={() => console.log('onSwipedLeft')}>
//
//HERE IS THE PART - HOW TO UPDATE THE 'favoritesList' array in the parent 'App's state?
//
{contents}
</CardStack>
</View>
);
}
}
const RootStack = StackNavigator(
{
Main: {
screen: Main},
Favorites: {
screen: Favorites}
},
{
initialRouteName: 'Main'
}
);
class Favorites extends React.Component {
// The plan is to eventually access the favoritesList array in App's state here and display cards that were swiped right in the Main component.
_onPress = () => {
this.props.navigation.navigate('Main');
};
render() {
return (
<View><Text>Hello!</Text></View>
);
}
}
export default class App extends Component<{}> {
constructor(props) {
super(props);
this.state = {
favoritesList: []
};
}
render() {
return <RootStack />;
}
}
Saya telah menemukan beberapa jawaban lain untuk memperbarui status seperti this.setState({ favoritesList: [...this.state.favoritesList, 'new value'] })
, tetapi bagaimana saya bisa melakukan ini pada .status App
saat saya berada di dalam komponen anak Main
?
Terima kasih sebelumnya!