因此,我有这个导航器组件,根据另一个组件的值,我需要显示一个不同的底部导航。

现在,我在上下文使用者上遇到了一个错误,在这里:

import { ThemeProvider, ThemeConsumer } from '../context/some';

const SelectedRoute = () => (
  <ThemeConsumer>
    {context => (context ? MainTabNavigator : PickupNavigator)}
  </ThemeConsumer>
);


export default createAppContainer(
  createSwitchNavigator(
    {
      App: SelectedRoute,
    },
  ),
);


这是我创建上下文的唯一步骤:

const ThemeContext = React.createContext(0);

export const ThemeProvider = ThemeContext.Provider;
export const ThemeConsumer = ThemeContext.Consumer;


我收到此警告:


  警告:函数作为React子元素无效。如果您返回Component而不是从render返回,则可能会发生这种情况。或者,也许您打算调用此函数而不是返回它。


我该怎么做才能正确呈现我的需求?

最佳答案

您想将JSX从作为子级给定的函数返回给ThemeConsumer,而不仅仅是返回一个组件。

const SelectedRoute = () => (
  <ThemeConsumer>
    {context => (context ? <MainTabNavigator /> : <PickupNavigator />)}
  </ThemeConsumer>
);

关于javascript - 如何根据Context API中的值呈现不同的组件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54717797/

10-16 19:51