具有动态类型对象的 ReactJS
ReactJS with dynamic type objects
我正在做一个项目,将一些 rails 视图层转换为 ReactJS。我面临的挑战之一是呈现动态类型对象的列表(对象正在使用 STI)。
例如,我正在尝试渲染一袋水果,每个水果在 rails 中都有特定的局部视图。在 rails,我会做
fruits.each do |fruit|
#fruit.type could be orange, apple, banana, etc.
render 'fruits/' + fruit.type
end
我如何在 ReactJS 中执行此操作?可能吗?
没有关于 哪里 你需要这样做的额外信息,我假设你在渲染时需要它,在这种情况下:只需在 JavaScript.
.....React.createClass({
...
getInitialState: function() {
return {
fruits: this.props.fruits || []
};
},
...
render: function() {
var fruits = this.state.fruits.map(function(f) {
return <li>{f.type}</li>;
});
return <ul>{fruits}</ul>;
},
...
});
您可以只创建一个对象。
var things = {
foo: FooComponent, ...
};
然后从中得到一个组件。
var key = 'foo';
var Component = things[key];
return <Component />
请注意,如果您使用的是 jsx,变量必须以大写字母开头,否则它会假定您指的是 html 元素 <component></component>
.
或者这里不要用jsx
React.creatElement(things[key], null);
我正在做一个项目,将一些 rails 视图层转换为 ReactJS。我面临的挑战之一是呈现动态类型对象的列表(对象正在使用 STI)。
例如,我正在尝试渲染一袋水果,每个水果在 rails 中都有特定的局部视图。在 rails,我会做
fruits.each do |fruit|
#fruit.type could be orange, apple, banana, etc.
render 'fruits/' + fruit.type
end
我如何在 ReactJS 中执行此操作?可能吗?
没有关于 哪里 你需要这样做的额外信息,我假设你在渲染时需要它,在这种情况下:只需在 JavaScript.
.....React.createClass({
...
getInitialState: function() {
return {
fruits: this.props.fruits || []
};
},
...
render: function() {
var fruits = this.state.fruits.map(function(f) {
return <li>{f.type}</li>;
});
return <ul>{fruits}</ul>;
},
...
});
您可以只创建一个对象。
var things = {
foo: FooComponent, ...
};
然后从中得到一个组件。
var key = 'foo';
var Component = things[key];
return <Component />
请注意,如果您使用的是 jsx,变量必须以大写字母开头,否则它会假定您指的是 html 元素 <component></component>
.
或者这里不要用jsx
React.creatElement(things[key], null);