在 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>
查看以下功能组件:
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>