我有一个加载提供程序的博览会应用程序:
export const AppProvider = ({ children }: { children: ReactNode }) => {
console.log('Hello from app provider!!');
const alertsBottomSheetRef = useRef<BottomSheetModal>(null);
const dismissAlert = useCallback(() => {
alertsBottomSheetRef.current?.close();
}, []);
const values = {
alertsBottomSheetRef,
dismissAlert,
};
// >>>>> return <AppContext.Provider value={values}>{children}</AppContext.Provider>;
};
如果我加载应用程序并添加最后一行注释,我可以看到 console.log。我还可以看到对 console.log 所做的任何更改。 但是,当我取消注释最后一行时,我没有得到任何 console.logs。 有什么想法吗?
问题是我用
expo start
而不是 expo start --dev-client
启动服务器。控制台日志现在按预期显示。
npx react-native log-android
npx react-native log-ios
写上面的命令
我认为为什么它不起作用,因为 AppContext.Provider 是一个上下文提供程序,并且它不会将任何内容记录到控制台。上下文提供者的目的是向提供者的后代组件提供数据。它不会在屏幕上渲染任何内容,也不会将任何内容记录到控制台。