javascript - 对于每辆车点击我需要在浏览器中显示车名
问题描述
对于每辆车点击,我需要在浏览器中显示车名。
- 我以为我会在 react 中使用类似于 js 的 e.target.innerText
- 但它不工作。
- 使用 map 我能够迭代数组。
- 但我不确定如何实现点击事件。
- 我是在使用 useState correclty 来设置车名吗
- 在下面提供我的代码片段和沙箱。
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);
推荐阅读
- python - 根据之前的系列预测结果
- php - 正则表达式如何在我的 PHP 代码中工作?
- python - 在 Python 中查找两个列表之间公共项的最快方法
- django - 为什么我在登录前没有访问重置密码 URL 你能告诉我我是如何访问的吗
- python - 使用 python 读取 rtf 元数据
- python-3.x - Python 3.8 中的连续 'TypeError: 'function' object is not subscriptable'
- javascript - 当我在函数中调用它并给我类型错误(Reactjs)时,setState 不起作用
- dynamic-programming - 给定两个字符串 S 和 T,求 S 中不是 T 中的子序列的最短子序列的长度
- r - 双重积分给出错误对象 y not found
- python - Python 检查参数是按位置还是按关键字传入