React Native中TailwindProvider与NavigationContainer嵌套及Redux集成疑问
Tailwind CSS与React Navigation的嵌套选择
选方式一,把NavigationContainer包在TailwindProvider里面:
<TailwindProvider utilities={utilities}> <NavigationContainer> <Welcome /> </NavigationContainer> </TailwindProvider>
原因很直接:
- Tailwind的样式工具要全局生效,不管是页面组件还是导航自带的元素(比如自定义头部、底部标签栏),都得能拿到Tailwind的上下文。要是反过来嵌套,导航容器本身的自定义样式就用不了Tailwind,后续扩展会受限。
- 这种外层包样式、内层包导航的结构,能让所有导航栈里的内容都继承Tailwind的工具类,适配更灵活。
Redux Store Provider的合理嵌套
Redux的Provider得放在最外层,把TailwindProvider和NavigationContainer全包进去,示例代码:
import { Provider } from 'react-redux'; import store from './store'; <Provider store={store}> <TailwindProvider utilities={utilities}> <NavigationContainer> <Welcome /> </NavigationContainer> </TailwindProvider> </Provider>
这么嵌套的理由:
- Redux是全局状态管理,最外层嵌套能保证整个应用里的所有组件——不管是导航逻辑、样式相关,还是业务页面——都能正常用
useSelector取状态、用useDispatch发动作。 - 按照「全局状态 > 全局样式 > 导航容器」的层级来嵌套,符合React上下文传递的逻辑,越全局的Provider越往外放,不会出现上下文覆盖或者访问不到的问题。
内容的提问来源于stack exchange,提问作者Shruthi Abirami
相关产品推荐
相关产品推荐

