reactjs 如何获得最后一个索引并检测它?使用Javascript

hfsqlsce  于 2023-02-08  发布在  React
关注(0)|答案(1)|浏览(157)

我需要找到最后一个索引,如果它是最后一个索引添加一个值.检查代码

const testData = Object.entries(allItems).map((item, index) => {

  lastItem = testData.length - 1;

  return ( 

    <div width={lastItem ? '200px' : '50px'} > ... </div>
  );
}
nukf8bse

nukf8bse1#

您缺少key属性。其次,您应该设置style属性。
您可以引用从Object.entries生成的条目作为map中的第三个参数;这是所有条目的列表。
最后,给你的变量起一个合适的名字。lastItem这个名字会让人混淆它的用途。像isLastItem这样的名字会更好用。
请参考下面完整的React示例,查看上述建议的更改。

const { Fragment } = React;

const allItems = { foo: 1, bar: 2, baz: 3 };

const testData = Object.entries(allItems)
  .map(([key, value], index, itemsArr) => {
    let isLastItem = index === itemsArr.length - 1;
    return (
      <div
        className="item"
        key={key}
        style={{
          width: isLastItem ? 200 : 50
        }}
      >
        {value}
      </div>
    );
  });

const App = () => <Fragment>{testData}</Fragment>;

ReactDOM
  .createRoot(document.getElementById('root'))
  .render(<App />);
.item { background-color: lightgreen; }
.item:last-child { background-color: pink; }
<div id="root"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/18.2.0/umd/react.development.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/18.2.0/umd/react-dom.development.js"></script>
    • 注意:**我添加CSS是为了直观地演示width的差异。

相关问题