如何从父组件在 React 的子组件中设置动态组件?
How to set a dynamic component within a child component in React from the parent component?
我有一个父组件拉入一个子组件,该子组件拉入另一个子组件。我希望能够设置该子项的子组件来自顶级父项。不知道该怎么做。这是一些代码来演示我正在尝试做的事情:
var TopParent = React.createClass({
render: function() {
return (
<div className="topParent">
<Child componentVariable="BottomChild">
</div>
);
}
});
var Child = React.createClass({
render: function() {
return (
<div className="child">
<{this.props.componentVariable} /> // this should pull in a component based on what is passed from TopParent
</div>
);
}
});
var BottomChild = React.createClass({
render: function() {
return (
<div className="bottomChild">
I am the bottom child. I should be able to be swapped out from TopParent.
</div>
);
}
});
此外,一旦我弄清楚如何执行此操作,我如何确保 Child 需要 BottomChild 组件的正确文件?
只使用实际引用,而不是字符串;毕竟,当您手动渲染像 <Child />
这样的组件时,它也是 一个引用。
var TopParent = React.createClass({
render: function() {
return (
<div className="topParent">
<Child componentVariable={BottomChild} />
</div>
);
}
});
var Child = React.createClass({
render: function() {
var Component = this.props.componentVariable; // make sure the var is capitalized
return (
<div className="child">
<Component />
</div>
);
}
});
var BottomChild = React.createClass({
render: function() {
return (
<div className="bottomChild">
I am the bottom child. I should be able to be swapped out from TopParent.
</div>
);
}
});
但是,在许多情况下,允许组件 to completely control the contents of the child:
是有意义的
var TopParent = React.createClass({
render: function() {
return (
<div className="topParent">
<Child>
<BottomChild />
</Child>
</div>
);
}
});
var Child = React.createClass({
render: function() {
// `this.props.children` is the *contents* of the `Child` component
// as specified in the JSX of `TopParent`
return (
<div className="child">
{this.props.children}
</div>
);
}
});
var BottomChild = React.createClass({
render: function() {
return (
<div className="bottomChild">
I am the bottom child. I should be able to be swapped out from TopParent.
</div>
);
}
});
我有一个父组件拉入一个子组件,该子组件拉入另一个子组件。我希望能够设置该子项的子组件来自顶级父项。不知道该怎么做。这是一些代码来演示我正在尝试做的事情:
var TopParent = React.createClass({
render: function() {
return (
<div className="topParent">
<Child componentVariable="BottomChild">
</div>
);
}
});
var Child = React.createClass({
render: function() {
return (
<div className="child">
<{this.props.componentVariable} /> // this should pull in a component based on what is passed from TopParent
</div>
);
}
});
var BottomChild = React.createClass({
render: function() {
return (
<div className="bottomChild">
I am the bottom child. I should be able to be swapped out from TopParent.
</div>
);
}
});
此外,一旦我弄清楚如何执行此操作,我如何确保 Child 需要 BottomChild 组件的正确文件?
只使用实际引用,而不是字符串;毕竟,当您手动渲染像 <Child />
这样的组件时,它也是 一个引用。
var TopParent = React.createClass({
render: function() {
return (
<div className="topParent">
<Child componentVariable={BottomChild} />
</div>
);
}
});
var Child = React.createClass({
render: function() {
var Component = this.props.componentVariable; // make sure the var is capitalized
return (
<div className="child">
<Component />
</div>
);
}
});
var BottomChild = React.createClass({
render: function() {
return (
<div className="bottomChild">
I am the bottom child. I should be able to be swapped out from TopParent.
</div>
);
}
});
但是,在许多情况下,允许组件 to completely control the contents of the child:
是有意义的var TopParent = React.createClass({
render: function() {
return (
<div className="topParent">
<Child>
<BottomChild />
</Child>
</div>
);
}
});
var Child = React.createClass({
render: function() {
// `this.props.children` is the *contents* of the `Child` component
// as specified in the JSX of `TopParent`
return (
<div className="child">
{this.props.children}
</div>
);
}
});
var BottomChild = React.createClass({
render: function() {
return (
<div className="bottomChild">
I am the bottom child. I should be able to be swapped out from TopParent.
</div>
);
}
});