简体   繁体   English

使用条件渲染隐藏/显示表中的行 - React

[英]Hide/show rows in the table using Conditional rendering- React

In React I want to hide rows in the table using a value of the vehicle in a conditional rendering.在 React 中,我想在条件渲染中使用车辆的值隐藏表中的行。 The below code to hide/show row works only when used on a group of elements label and input, or with a select drop-down menu, but doesn't work on table rows.以下隐藏/显示行的代码仅适用于一组元素 label 和输入,或与 select 下拉菜单一起使用,但不适用于表格行。

return (
  <Fragment>
    <h2>Vehicle Details: {vehicle.vehicleId}</h2>

    <table >
      <tbody>

        {vehicle.type = "car" && (
          <Fragment>
            <tr>
              <th>Car</th>
              <td>{vehicle.reg}</td>
            </tr>
          </Fragment>
        )}

        {vehicle.type = "truck" && (
          <Fragment>
            <tr>
              <th>Truck</th>
              <td>{vehicle.reg}</td>
            </tr>
          </Fragment>
        )}

        <tr>
          <th>Bus</th>
          <td>{vehicle.reg}</td>
        </tr>

      </tbody>
    </table>
  </Fragment>
);

You need to use the strict comparison operator === , not the assignment operator = .您需要使用严格的比较运算符=== ,而不是赋值运算符=

 const Table = () => { const [vehicle, setVehicle] = React.useState({ id: "xy", type: "car", reg: "A - 343 - 34"}) return ( <React.Fragment> <h2>Vehicle Details: {vehicle.vehicleId}</h2> <table> <tbody> { (vehicle.type === "car" && ( <tr> <th>Car</th> <td>{vehicle.reg}</td> </tr> )) } { (vehicle.type === "truck" && ( <tr> <th>Truck</th> <td>{vehicle.type}</td> </tr> )) } <tr> <th>Bus</th> <td>{vehicle.bus}</td> </tr> </tbody> </table> </React.Fragment> ); }; ReactDOM.render(<Table/>, document.getElementById('root'));
 <script crossorigin src="https://unpkg.com/react@18/umd/react.production.min.js"></script> <script crossorigin src="https://unpkg.com/react-dom@18/umd/react-dom.production.min.js"></script> <div id="root"></div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM