对于每次汽车点击,我需要在浏览器中显示汽车名称。
- 我想我会在react中使用类似于js的e.target.innerText
- 但它不起作用。
- 使用 map 我能够迭代数组。
- 但我不知道如何实现点击事件。
- 我是否使用 useState correclty 来设置汽车名称
- 在下面提供我的代码片段和 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>
最佳答案
我觉得你对我的示例代码中的 onClick 有一些问题
代码沙盒:https://codesandbox.io/s/elated-field-3wj2x
代码:
import React, { useState } from "react";
import ReactDOM from "react-dom";
import "./styles.css";
function App() {
const [carbrand, setCarBrand] = useState();
let cars = ["honda", "toyota", "bmw"];
let eachCarName = cars.map((name, index) => {
return (
<h1 onClick={e => eachCarClick(e)} key={index}>
{name}
</h1>
);
});
const eachCarClick = e => {
setCarBrand(e.target.innerText);
};
// const setCarBrand = eachCarName;
console.log(carbrand);
return (
<div className="App">
<div>{eachCarName}</div>
</div>
);
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
关于javascript - 对于每次点击汽车,我需要在浏览器中显示汽车名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58605541/