在React中的功能组件外部声明功能

时间:2020-07-01 14:55:08

标签: reactjs react-component react-functional-component

看看以下功能组件:

const MyComponent = (props) => {
  function addPropData() {
   return prop.data.name
  }

  return (
  <div>{addPropData()}</div>
 )
}

我想知道是否可以声明addPropData的{​​{1}}函数 outside 。例如,如下所示:

MyComponent

我知道这行不通-我想知道是否有办法使其正常工作?如果可以,怎么办?

谢谢。

1 个答案:

答案 0 :(得分:1)

将变量传递给函数。

const MyComponent = (props) => {
  return (
    <div>{addPropData(props)}</div>
  )
}

function addPropData(props) {
  return props.data.name
}

在上下文中,如下所示:

<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>
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>

<div id="like_button_container"></div>

<script type="text/babel">
  const MyComponent = (props) => {
    return (
      <div>{addPropData(props)}</div>
    )
  }
  
  function addPropData(props) {
    return props.data.name
  }
  
  function App() {
    return (
      <div className="App">
        <MyComponent data={{ name: "myname" }} />
      </div>
    )
  }
  
  const domContainer = document.querySelector('#like_button_container')
  const e = React.createElement
  ReactDOM.render(e(App), domContainer);
</script>