Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React native:导出带有多个模块包装的默认应用程序_Javascript_React Native_Aws Amplify - Fatal编程技术网

Javascript React native:导出带有多个模块包装的默认应用程序

Javascript React native:导出带有多个模块包装的默认应用程序,javascript,react-native,aws-amplify,Javascript,React Native,Aws Amplify,我的react原生项目中有以下App.js: class App extends Component { render() { return ( <ApolloProvider store={store} client={client}> <AppWithNavigationState /> </ApolloProvider> ); } } export de

我的react原生项目中有以下App.js:

class App extends Component {

    render() {
        return (
          <ApolloProvider store={store} client={client}>
        <AppWithNavigationState />
        </ApolloProvider>

      );
    }

}
export default App = codePush(App);
^^当我已经将codePush包装在我正在导出的应用程序组件周围时,我该如何做呢?

TL;医生:
withAuthenticator
基本上是一个函数,它接受一个组件,对其进行装饰(即提供一些特殊的道具或定制),并返回一个由您传入的组件组成的新组件。因此,在你的情况下,如果你想要多个HOC,你可以简单地说-

export default withAuthenticator(codePush(App))
从可读性的角度来看,如果你有,比如说,5个装饰符,这种语法可能会变得很糟糕。在这种情况下,使用新的decorator语法非常有用。有了它,你可以做一些整洁的事情,比如-

@mySpecialDecoratorThatDoesNiceThings
@withAuthenticator
@codePush
export default class App extends Component {
...
}
如果您正在使用babel,请查看此babel插件,以确保正确传输装饰程序。

TL;医生:
withAuthenticator
基本上是一个函数,它接受一个组件,对其进行装饰(即提供一些特殊的道具或定制),并返回一个由您传入的组件组成的新组件。因此,在你的情况下,如果你想要多个HOC,你可以简单地说-

export default withAuthenticator(codePush(App))
从可读性的角度来看,如果你有,比如说,5个装饰符,这种语法可能会变得很糟糕。在这种情况下,使用新的decorator语法非常有用。有了它,你可以做一些整洁的事情,比如-

@mySpecialDecoratorThatDoesNiceThings
@withAuthenticator
@codePush
export default class App extends Component {
...
}

如果您正在使用babel,请查看此babel插件,以确保正确传输装饰程序。

thnx Sagar!我把这件事按什么顺序安排重要吗?如果是这样的话,将codepush组件作为最高阶不是更有意义吗?这可能有问题,也可能没有问题,这取决于HOC做什么以及需要导出什么。如果您的一个HOC(例如,
codePush
需要
withAuthenticator
提供道具,则withAuthenticator必须是您调用的第一个HOC,但在大多数情况下,这可能无关紧要。您还可以交换withAuthenticator()HOC并使用自己的验证器。向组件(例如登录按钮)添加身份验证或获取自定义UI是正常的。查看我的博客-我在1月18日的Sagar中写了这两个案例!我把这件事按什么顺序安排重要吗?如果是这样的话,将codepush组件作为最高阶不是更有意义吗?这可能有问题,也可能没有问题,这取决于HOC做什么以及需要导出什么。如果您的一个HOC(例如,
codePush
需要
withAuthenticator
提供道具,则withAuthenticator必须是您调用的第一个HOC,但在大多数情况下,这可能无关紧要。您还可以交换withAuthenticator()HOC并使用自己的验证器。向组件(例如登录按钮)添加身份验证或获取自定义UI是正常的。查看我的博客-我在1月18日写了这两个案例