2
我已經被稱爲「按鈕」的工作組件,該組件使用它:陣營組件與動態標籤名稱不會呈現
import React, { Component } from 'react'
import Button from './Boxes/Button'
class AutoGraph extends Component {
constructor(props) {
super(props)
this.placed = {
components: [
{
type: 'Button',
x: 10,
y: 10
}
]
}
}
render() {
return (
<svg width={this.windowWidth} height={this.windowHeight}>
<g id="component-layer">{this.placed.components.map((item, i) => {
return React.createElement(item.type, {
key: i,
x: item.x,
y: item.y
})
})}
<Button x="150" y="20"/>
</g>
</svg>
)
}
}
export default AutoGraph
動態創建的按鈕只呈現爲<按鈕X =「10」 Y =」 10「/ >,但硬編碼的Button組件直接渲染正確後。我如何讓我的動態創建的按鈕使用我的Button組件代碼進行渲染?
謝謝你的工作!我怎樣才能將字符串轉換爲類?我想從字符串'Button'中檢索Button組件,但eval('Button')不起作用。 –
您應該爲要動態加載的組件構建查找表。例如。 'const components = {Button};'(相當於'{Button:Button}'),然後你可以做'React.createElement(components [this.place.type],...)'。 –