首页 > 解决方案 > 对于每辆车点击我需要在浏览器中显示车名

问题描述

  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>

标签: javascripthtmlcssreactjsredux

解决方案


我觉得你对 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);

推荐阅读