我有一个要引用不同图像的组件,但是我不想为每个图像专门创建一个新组件。我的代码如下:
import React from 'react'
import styles from './styles.css'
export default class ColumnComponent extends React.Component {
render() {
return (
<img className="" src={imgURL} />
)
}
}
例如,如何在index.js中使用src = {imgURL}引用不同的图像时,如何导出这一组件?
答案 0 :(得分:2)
我认为这就是您想要的。
import React,{Component} from 'react';
import ColumnComponent from './ColumnComponent'
class Index extends Component {
state={
images:[
{id:'1',img:'www.google.com'},
{id:'2',img:'www.facebook.com'},
{id:'3',img:'www.youtube.com'},
]
}
render(){
let myImages=this.state.images.map(
el=>{
return <ColumnComponent key={el.id} imgURL={el.img} />})
return (
<div>
{myImages}
</div>
)}
}
export default Index;
如果您使用类组件,请在ColumnComponent中确保src={this.props.imgURL}
。
答案 1 :(得分:1)
看来您是React的新手,这可以通过简单的道具来解决:
import React from 'react'
import styles from './styles.css'
export default class ColumnComponent extends React.Component {
render() {
return (
<img className="" src={this.props.imgURL} />
)
}
}
// Usage
<ColumnComponent imgURL={"http://www.google.it"} />
<ColumnComponent imgURL={"http://www.youtube.com"} />
<ColumnComponent imgURL={"http://www.vk.ru"} />
答案 2 :(得分:1)
这就是您需要的
您可以将具有 props 的图像列表传递给ColumnComponent并使用 map 遍历和创建元素,然后在渲染中使用它>。
然后假设您的元素(在下面的示例中被称为el)由属性image_url
组成,您可以通过在 img中执行image_url
来引用el["image_url"]
属性src 组件
,因此您只需要在 index.js
中使用一次 ColumnComponentColumnComponent
import React from 'react'
import styles from './styles.css'
export default class ColumnComponent extends React.Component {
const images = this.props.imgURLs.map(el => {
return <img className="" src={el["image_url"]} />
});
render() {
return (
{images}
)
}
}