React native 反应本机导航参数和德米特定律
当您想要访问通过导航(react native navigation)传递的屏幕组件中的参数时,您必须这样做,例如:React native 反应本机导航参数和德米特定律,react-native,react-native-navigation,law-of-demeter,React Native,React Native Navigation,Law Of Demeter,当您想要访问通过导航(react native navigation)传递的屏幕组件中的参数时,您必须这样做,例如: this.myParameter = this.navigation.state.params.myParameter 这是否违反了德米特法?如果你以后想使用深度链接呢 解决方案是创建一个包装器组件,将导航参数映射为道具 事实上,德米特定律(或最小知识原则)要求您的组件对导航对象的内部结构一无所知 在我看来,最好的情况是传递给组件的导航对象已经有了一个名为params()的函
this.myParameter = this.navigation.state.params.myParameter
这是否违反了德米特法?如果你以后想使用深度链接呢
解决方案是创建一个包装器组件,将导航参数映射为道具 事实上,德米特定律(或最小知识原则)要求您的组件对导航对象的内部结构一无所知 在我看来,最好的情况是传递给组件的导航对象已经有了一个名为
params()
的函数,该函数将向您返回一个参数映射
但是,由于情况并非如此,您可以自己添加它-或者通过引入一层间接寻址(通过您自己的函数,看起来像screenParamsFrom(导航)来添加)
,或者您可以尝试连接到导航对象,并通过将导航对象提供给根导航器来添加函数:
<MyRootNavigator navigation={addNavigationHelpers({
dispatch: dispatch,
state: state,
params: paramsFunction})}/>
但是,在这种情况下,您必须自己管理状态(通过Redux或其他类似机制。请参阅)