【问题标题】:How to create dynamic reusable functional component in React?如何在 React 中创建动态可重用的功能组件?
【发布时间】:2021-12-25 14:44:05
【问题描述】:

我想创建一个动态的可重用组件。我知道可以借助类似的道具来完成:

const Sidebar = (props)=>{
return(
<div className="sidebar">
<ul>
<li>{props.list1}</li>
<li>{props.list1}</li>
<li>{props.list1}</li>
<li>{props.list1}</li>
...
</ul>
</div>
)
}

这里有一个问题。我不知道边栏中会出现多少&lt;li&gt;。在某些情况下,侧边栏可以很大也可以很小。 当我使用上述方法(在props 的帮助下)创建动态组件时,我必须有固定数量的列表项。 如何使用动态数据以及&lt;li&gt; 标签的动态数量创建可重用组件?

【问题讨论】:

    标签: javascript html reactjs json react-component


    【解决方案1】:

    使用.map 遍历数组并将其呈现为列表。

    见:https://reactjs.org/docs/lists-and-keys.html

    const Sidebar = (props)=>{
    
    const sidebarItems = props.list1.map(i => <li>{i}</li>);
    
    
    return(
    <div className="sidebar">
    <ul>
     {sidebarItems}
    </ul>
    </div>
    )
    }
    
    ReactDOM.render(<Sidebar list1={["first", "second", "third", "fourth"]}/>, document.getElementById('sidebar'));
    
    ReactDOM.render(<Sidebar list1={["onlyOne"]}/>, document.getElementById('smaller'));
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
    
    
    <div id="sidebar"></div>
    
    <div id="smaller"></div>

    【讨论】:

    • 非常感谢,Joshua Craven。成功了!
    • 谢谢。我总是对我的答案表示赞同:)
    • 但我有不同的情况。我有一个 JavaScript 对象,我将它作为 prop 传递给侧边栏组件,在对象内部,有一个列表数组。我在遍历对象内部的数组时遇到问题。
    • 如果您将对象作为道具传递,您可以通过它的键获取数组,例如myList = props.theObject.list1;
    • 太棒了!我做到了!谢谢你的解释。互联网上的社区真的很棒。万分感谢。 :) 来自巴基斯坦的爱。
    猜你喜欢
    • 2021-03-31
    • 2020-04-13
    • 2021-09-15
    • 2020-12-05
    • 2020-01-08
    • 1970-01-01
    • 2018-08-30
    • 2017-07-05
    • 2021-07-11
    相关资源
    最近更新 更多