Saya memiliki navigasi seperti itu di aplikasi kecil:

function MainStackNavigator() {
  return (
    <NavigationContainer>
      <Stack.Navigator>
        <Stack.Screen name='Home' component={Home} options={{ headerShown: false }} />
        <Stack.Screen name='Learning' component={Learning}
          options={({ route }) => ({
            title: route.params.screen
          })} />
      </Stack.Navigator>
    </NavigationContainer>
  )
}

Di Layar pembelajaran, saya menulis ke AsyncStorage

Ketika saya kembali ke Layar utama saya ingin menampilkan konten ini (dari AsyncStorage)

Bagaimana Anda memanggil fungsi di Beranda yang menerima data dari AsyncStorage segera setelah kembali dari Layar pembelajaran ke Layar Beranda?

0
DevNet 11 Maret 2020, 17:23

1 menjawab

Jawaban Terbaik

Anda akan menemukannya di dokumentasi:

https://reactnavigation.org/docs/function-after-focusing-screen/

Anda dapat menggunakan useIsFocused

import * as React from 'react';
import { Text } from 'react-native';
import { useIsFocused } from '@react-navigation/native';

function Profile() {
  // This hook returns `true` if the screen is focused, `false` otherwise
  const isFocused = useIsFocused();

  return <Text>{isFocused ? 'focused' : 'unfocused'}</Text>;
}

Jika Anda ingin menyegarkan layar setelah goBack, lakukan sesuatu seperti ini di Home:

function Home(props) {
    const isFocused = useIsFocused();

    useEffect(() => {
        if (isFocused) {
            // Do something
        }
    });

// Rest of code
1
NetCoreDev 11 Maret 2020, 14:59