簡體   English   中英

如何傳遞道具來反應變量包裹的組件

[英]How to pass props to react component that wrapped in variable

我想動態渲染表格單元格。 每個單元格都是React組件。 我正在嘗試將這些React組件導出為包裝函數。

例如:

import cellA from './cellA'
import cellB from './cellB'
import cellC from './cellC'

let content = { cellA, cellB, cellC }

function tableize (a) {
    let resultFn = {}
    Object.keys(a).forEach((k) => {
        let element = a[k]
        resultFn[k] = function (data) {
            return (<element data={data} />)
        }
    })
    return resultFn
}

export default tableize(content)

問題出在這一行:

return (<element data={data} />)

結果是名為element的React組件的瀏覽器呈現列表,而不是cellAcellBcellC 函數返回元素為jsx(在</>標簽中),因為我需要將props傳遞給這些React組件。 但我錯了。

如何將props傳遞給包含在變量中的這個React組件?

謝謝!

試試這個:

function tableize (a) {
    let resultFn = {}
    Object.keys(a).forEach((k) => {
        // Uppercase "E" from Element
        let Element = a[k]
        resultFn[k] = function (data) {
            // Uppercase "E" from Element
            return (<Element data={data} />)
        }
    })
    return resultFn
}

看起來你想要的是更高階的組件(HOC)

function wrapper(WrappedComponent) {
  return class extends React.Component {
    render() {
      // Wraps the input component in a container, without mutating it. Good!
      return <WrappedComponent {...this.props} />;
    }
  }
}

請閱讀此https://facebook.github.io/react/docs/higher-order-components.html

暫無
暫無

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

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