在 React 的功能组件之外声明功能

Declare Function Outside of a Functional Component in React

查看以下功能组件:

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

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

我想知道是否可以在 MyComponent 的 之外声明 addPropData 函数 。例如,像这样:

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

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

我知道这行不通 -- 我想知道是否有办法让它工作?如果可以,怎么做?

谢谢。

将变量传递给函数。

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>