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]
谢谢,我刚刚更正了!但它只是在这里显示的示例中输入错误。