React 动态列表组件

ReactReactBeginner
立即练习

This tutorial is from open-source community. Access the source code

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本实验中,我们将探索如何使用 DataList 组件在 React 中创建一个动态列表组件。借助此组件,我们可以将原始值数组呈现为有序列表或无序列表。在实验结束时,你将更好地理解如何在 React 中使用 Array.prototype.map() 以及如何根据属性有条件地渲染元素。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL react(("React")) -.-> react/FundamentalsGroup(["Fundamentals"]) react/FundamentalsGroup -.-> react/jsx("JSX") react/FundamentalsGroup -.-> react/list_keys("Lists and Keys") subgraph Lab Skills react/jsx -.-> lab-38347{{"React 动态列表组件"}} react/list_keys -.-> lab-38347{{"React 动态列表组件"}} end

数据列表

虚拟机中已提供 index.htmlscript.js。一般来说,你只需在 script.jsstyle.css 中添加代码。

此函数从原始值数组渲染项目列表。它可用于根据 isOrdered 属性的值有条件地渲染有序列表或无序列表。为了从 data 数组渲染每个项目,它使用 Array.prototype.map() 为每个项目创建一个带有唯一 key<li> 元素。

const DataList = ({ data, isOrdered = false }) => {
  const list = data.map((value, index) => (
    <li key={`${index}_${value}`}>{value}</li>
  ));

  return isOrdered ? <ol>{list}</ol> : <ul>{list}</ul>;
};

以下是如何使用此组件的示例:

const names = ["John", "Paul", "Mary"];
ReactDOM.createRoot(document.getElementById("root")).render(
  <>
    <DataList data={names} />
    <DataList data={names} isOrdered={true} />
  </>
);

在此示例中,我们将一个名字数组传递给 DataList 组件并渲染两次。第一次,我们渲染一个无序列表,而第二次我们渲染一个有序列表。

请点击右下角的“上线”以在端口 8080 上运行网络服务。然后,你可以刷新“Web 8080”标签页以预览网页。

总结

恭喜你!你已完成数据列表实验。你可以在 LabEx 中练习更多实验以提升你的技能。