Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.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 是否可以为<;路线>;在dom中?_Javascript_React Router Dom - Fatal编程技术网

Javascript 是否可以为<;路线>;在dom中?

Javascript 是否可以为<;路线>;在dom中?,javascript,react-router-dom,Javascript,React Router Dom,我们已经知道如何动态拾取和渲染组件: import CompA from './CompA'; import CompB from './CompB'; var componentSet = { 'compa': CompA, 'compb': CompB } var type = 'compa' var TargetComp = componentSet[type]; ... return <TargetComp /> 从“/CompA”导入CompA; 从“/C

我们已经知道如何动态拾取和渲染组件:

import CompA  from './CompA';
import CompB  from './CompB';

var componentSet = {
 'compa': CompA,
 'compb': CompB
}

var type = 'compa' 
var TargetComp = componentSet[type];
...
return <TargetComp /> 
从“/CompA”导入CompA;
从“/CompB”导入CompB;
变量组件集={
"compa":compa,,
“compb”:compb
}
变量类型='compa'
var TargetComp=组件集[类型];
...
返回
但我在尝试将其与
组件集成时没有成功:

class DynamicRoute extends Component {
    render() {
        return (
            <Route path="/compa" render={()=> <TargetComp /> }/>
        );
    }
}
// Error message:
// Content.render(): A valid React element (or null) must be returned.- 
// You may have returned undefined, an array or some other invalid object.
类DynamicRoute扩展组件{
render(){
返回(
}/>
);
}
}
//错误消息:
//Content.render():必须返回有效的React元素(或null)。-
//您可能返回了未定义、数组或其他无效对象。

谢谢你的帮助

这是v4版的吗?我通常使用组件道具而不是渲染。这样行吗


这是v4版的吗?我通常使用组件道具而不是渲染。这样行吗


如果您想访问组件中通过
路由
呈现的路由属性(例如
匹配
位置
历史
类似于组件代码中的
this.props.history
),您可以通过以下方式将道具传递到组件中:

<Route path="/compA" component={(props) => (<compA {...props} myProp={this.state.myProp} />) } />
()}/>

如果您想访问组件中通过
路由
呈现的路由属性(例如
匹配
位置
历史
类似于组件代码中的
this.props.history
),您可以通过以下方式将道具传递到组件中:

<Route path="/compA" component={(props) => (<compA {...props} myProp={this.state.myProp} />) } />
()}/>

是的,我使用的是v4,不幸的是我尝试过,但它不起作用。我想你有一个简单的输入错误,实际上这行
var TargetComp=compa]
将给出一个错误,除非您隐藏了更多的代码,因为compa在任何地方都没有定义为变量。。。因此componentSet[compa]很可能正在计算componentSet[undefined],它将返回null。将其更改为
componentSet[type]
谢谢,我刚刚更正了!但它只是在这里显示的示例中输入的。是的,我使用的是v4,不幸的是,我尝试过这一点,但它不起作用。我认为您有一个简单的输入错误,实际上这行
var TargetComp=componentSet[compa]
将给出一个错误,除非您隐藏了更多的代码,因为compa在任何地方都没有定义为变量。。。因此componentSet[compa]很可能正在计算componentSet[undefined],它将返回null。将其更改为
componentSet[type]
谢谢,我刚刚更正了!但它只是在这里显示的示例中输入错误。