Вы можете использовать контекстный API, чтобы отделить логи извлечения c от вашего компонента.
import React from 'react'
const DataContext = React.createContext()
function DataProvider({children}) {
const [data, setData] = React.useState()
React.useEffect(() => {
const fetchData = async () => {
const data = await someAsynchronousCall()
setData(data)
};
fetchData()
}, [])
return (
<DataContext.Provider value={data}>
{children}
</CountStateContext.Provider>
)
}
export {DataProvider, DataContext}
В вашем компоненте используйте useContext, чтобы получить данные
const HomeScreen = () => {
const data = useContext(DataContext)
useEffect(() => {
console.log('new data is: ' + SomeService.data);
}, [data]); // I want to trigger this once data changes
return <View> ... </View>
};
и обернуть ваше приложение в DataProvider
const App = props => {
<DataProvider>
<HomeScreen />
{/* other component */}
</DataProvider>
}