【发布时间】:2021-08-09 02:17:59
【问题描述】:
我正在尝试根据我从映射酒精列表中获得的字符串来设置我在 return 语句中获得的每个 div 的背景图像,但不能完全弄清楚我们如何做到这一点。
下面是我的代码。
提前谢谢你。
import styles from "../styles/Home.module.css"
import { useHistory } from 'react-router-dom'
import { useSelector } from 'react-redux'
import whiskey from '../images/whiskey.jpg'
import gin from '../images/gin.jpg'
import vodka from '../images/vodka.jpg'
import tequila from '../images/tequila.jpg'
import rum from '../images/rum.jpg'
function Home() {
const alcoholList = useSelector(state => state.alcoholList)
const history = useHistory()
const handleClick = (alcoholName) => {
history.push(`/ingredients?alcohol=${alcoholName}`)
console.log(alcoholName)
}
return(
<div>
<div className={styles.homeIngredients}>
{alcoholList.map(item =>
<div onClick={()=>{handleClick(item)
} } className={styles.inner} style={{
backgroundImage: `url(${whiskey})`,
}}>
<h2>{item}</h2>
<p>view recipe</p>
</div>)}
</div>
</div>
)
}
export default Home;
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
【问题讨论】:
-
你能展示一下
alcoholList的样子吗? -
alcoholList 是一个包含 5 个字符串的数组:["whiskey", "vodka", "gin", "rum", "tequila"]
标签: reactjs redux jsx css-in-js