Javascript 将语言作为动态属性从父组件传递给React中的所有子体
我正在创建多语言应用程序。所以我想将语言属性传播给所有后代。因此,我可以在我的应用程序中为所有链接和路由添加语言前缀 我知道两种方法:Javascript 将语言作为动态属性从父组件传递给React中的所有子体,javascript,reactjs,internationalization,react-intl,Javascript,Reactjs,Internationalization,React Intl,我正在创建多语言应用程序。所以我想将语言属性传播给所有后代。因此,我可以在我的应用程序中为所有链接和路由添加语言前缀 我知道两种方法: 使用上下文,但不建议使用它,因为它是实验性的 使用redux store,但在这种情况下,我需要将每个组件连接到store 因此,我想知道哪种情况更可取,或者如果没有,那么可能还有另一种选择 附加说明 3.作为属性从组件传递到每个子级的所有深度,如下所示: <Component1 lang={props.lang} /> <Compon
3.作为属性从组件传递到每个子级的所有深度,如下所示:
<Component1 lang={props.lang} />
<Component2 lang={props.lang} />
<Component3 lang={props.lang} />
<Component4 lang={props.lang} />
....
<Component#N lang={props.lang} />
....
以下是我最适合我的想法和解决方案
LocationPoiner.admin()
将返回基于活动语言(/en/admin panel)指向管理视图的字符串
<Link to={LocationPointer.admin()}>{__('Admin')}</Link>
{{{('Admin')}
当您同时在一个页面上使用多种语言时,将语言作为道具传递对我来说是有意义的。否则,在我看来,这只会造成混乱 通常,语言代码放在url中,因为这也用于SEO目的,使其更易于管理。然后,您可以将语言代码作为参数传播到组件中,也可以使用
props
。根组件将从某处(可能从url)获取语言,并通过props
将其传递给children@Fawaz这正是我想要的want@Fawaz但是,如果有很多层次的嵌套组件,那么我必须将语言代码
作为属性从一个组件传递到另一个组件。我想避免it@TarasYaremkiv这是不利的一面,需要你一路传递下去。您可以使用一些速记来加快速度,如
,将所有道具传递给子组件,但这是不可避免的。