簡體   English   中英

React:重新排序子組件

[英]React: Reorder children components

我有包裝器組件,在某些情況下,我需要重新排序其中只有一個孩子的 position,有時我需要將 ComponentX 放在頂部,有時在底部。 有什么優雅的方法可以實現這一目標嗎? 因為我做到了,但復制了代碼。

const ComponentX = () => <h4>component x</h4>
const Component1 = () => <h4>component 1</h4>
const Component2 = () => <h4>component 2</h4>

const ComponentWrapper = ({xOnTop = false}) => {
  return (
    <div className="box">
       <h1>My components</h1>
        {xOnTop && <ComponentX />}
        <Component1 />
        <Component2 />
        {!xOnTop && <ComponentX />}
    </div>
  )
}

這是我的代碼筆

你所擁有的一切都很好,但我試圖想出一種與 go 不同的方法並想出了這個。 因此,您可以使用 xOnTop 參數輕松地反轉組件鍵的順序。

const components = [
  <h4 key="1">component x</h4>,
  <h4 key="2">component 1</h4>,
  <h4 key="2">component 2</h4>
 ]

const ComponentWrapper = ({xOnTop = true}) => {
  components.sort((a, b) => xOnTop ? a.key - b.key : b.key - a.key)
  return (
    <div className="box">
      <h1>My components</h1>
      {components.map(c => c)}
    </div>
  )
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM