Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.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 如何通过参数调用组件?_Javascript_Reactjs_React Native - Fatal编程技术网

Javascript 如何通过参数调用组件?

Javascript 如何通过参数调用组件?,javascript,reactjs,react-native,Javascript,Reactjs,React Native,如果没有此开关,如何调用组件? 比如: <(route.id) navigator={navigator} /> navigatorRenderScene(route, navigator) { switch (route.id) { case 'First': return <First navigator={navigator} /> case 'Second': return <Second n

如果没有此开关,如何调用组件? 比如:

<(route.id) navigator={navigator} />

    navigatorRenderScene(route, navigator) {
    switch (route.id) {
      case 'First':
      return <First navigator={navigator} />
      case 'Second':
      return <Second navigator={navigator} />
      case 'Third':
      return <Third navigator={navigator} />
    }
  }

navigatorRenderScene(路线、导航器){
交换机(route.id){
第一个案例:
返回
第二个案例:
返回
第三个案例:
返回
}
}

这是一个示例解决方案

const FIELD_MAPPING = {
  First,
  Second,
  Third,
};


render() { 
  const ComponentField = FIELD_MAPPING[route.id] || DefaultComponentField;

  return <ComponentField navigator={navigator} />;
}
大写类型表示JSX标记引用的是React组件。这些标记被编译成对命名变量的直接引用,因此如果使用JSX表达式,Foo必须在范围内

否则,类型为字符串或非大写变量,并解释为HTML标记

React.createElement('div', options); 
相当于

const tag = 'div';
React.createElement(tag, options); 

您正在寻找类似于
反应路由器
的产品吗?我已经编辑了我的答案,你可以再次查看。
return React.createElement(MyComponent, options);
React.createElement('div', options); 
const tag = 'div';
React.createElement(tag, options);