Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.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 如何在reactjs中向组件动态添加属性_Javascript_Reactjs - Fatal编程技术网

Javascript 如何在reactjs中向组件动态添加属性

Javascript 如何在reactjs中向组件动态添加属性,javascript,reactjs,Javascript,Reactjs,我有一个场景,在这个场景中,我想动态地为我的PrivateRoute组件分配一个属性 <PrivateRoute exact path="/" component={HomePage} /> 这是我的组件 <PrivateRoute exact path="/" component={HomePage} /> 这里我想要这样的东西: <PrivateRoute {localStorage.getItem('user') ? exact : '' } path="

我有一个场景,在这个场景中,我想动态地为我的PrivateRoute组件分配一个属性

<PrivateRoute exact path="/" component={HomePage} />
这是我的组件

<PrivateRoute exact path="/" component={HomePage} />
这里我想要这样的东西:

<PrivateRoute {localStorage.getItem('user') ? exact : '' } path="/" component={HomePage} />
const exact = localStorage.getItem('user') ? { exact: true } : { };
<PrivateRoute {...exact} path="/" component={HomePage} />
<PrivateRoute exact path="/" component={HomePage} {...obj} />
如果localStorage.getItem'user'为true,则只应应用exact。

试试这个

const user = localStorage.getItem('user');

user ? <PrivateRoute exact path="/" component={HomePage} /> 
     : <PrivateRoute path="/" component={HomePage} />

您可以像这样使用排列运算符:

<PrivateRoute {localStorage.getItem('user') ? exact : '' } path="/" component={HomePage} />
const exact = localStorage.getItem('user') ? { exact: true } : { };
<PrivateRoute {...exact} path="/" component={HomePage} />
<PrivateRoute exact path="/" component={HomePage} {...obj} />
如果getItem返回falsy,则将扩展一个空对象,并且根本不会设置任何属性。

如果您有一个对象obj={a:'something',b:'somethingelse',},只需将其传递给组件,如下所示:

<PrivateRoute {localStorage.getItem('user') ? exact : '' } path="/" component={HomePage} />
const exact = localStorage.getItem('user') ? { exact: true } : { };
<PrivateRoute {...exact} path="/" component={HomePage} />
<PrivateRoute exact path="/" component={HomePage} {...obj} />
因此,在组件内部,您可以通过以下方式访问它:

这个。道具。a,这个。道具。b等等