【发布时间】:2019-10-29 21:25:29
【问题描述】:
-
每次点击汽车,我都需要在浏览器中显示汽车名称。
- 我以为我会在react中使用类似于js的e.target.innerText
- 但它不起作用。
- 使用 map 我能够迭代数组。
- 但不知道如何实现点击事件。
- 我是否使用 useState correclty 来设置车名
- 在下面提供我的代码 sn-p 和 sanbox。
function App() {
const [carbrand, setCarBrand] = useState();
let cars = ["honda", "toyota", "bmw"];
let eachCarName = cars.map(name => {
console.log("name--->", name);
let carDiv = <div>{name}</div>;
return carDiv;
//return name;
});
console.log("eachCarName--->", eachCarName);
const eachCarClick = e => {
console.log("eachCarClick--->", e);
console.log("eachCarClick e.target.innerText--->", e.target.innerText);
};
// const setCarBrand = eachCarName;
// const carbrand = eachCarName;
return (
<div className="App">
<h1 onClick={eachCarClick(event)}>{eachCarName}</h1>
</div>
【问题讨论】:
-
只是
<h1 onClick={eachCarClick}>{eachCarName}</h1>....不要在html中调用eachCarClick函数,而是将其定义为事件处理程序。然后在单击时调用该事件作为函数的第一个参数自动插入
标签: javascript html css reactjs redux