React native 如何在React Native中的多个组件之间传递函数

React native 如何在React Native中的多个组件之间传递函数,react-native,function,components,React Native,Function,Components,我有问题,但我没有找到答案,所以我尝试任何可以帮助我的人: 我有一个主要的应用程序组件: export default class App extends React.Component { constructor(props) {...} openSettings = () => { ....some changing state} render(){ return (... <Settings openSettings={() =>this.openSettings()

我有问题,但我没有找到答案,所以我尝试任何可以帮助我的人:

我有一个主要的应用程序组件:

export default class App extends React.Component {
constructor(props) {...}

openSettings = () => { ....some changing state}

render(){
return (...
<Settings openSettings={() =>this.openSettings()}/>
      );}
...};
导出默认类App扩展React.Component{
构造函数(props){…}
openSettings=()=>{…某些正在更改的状态}
render(){
返回(。。。
this.openSettings()}/>
);}
...};
我的设置文件:

const Settings = ({openSetting}) => {
    return (
      <MyHeader openSetting={openSetting}></MyHeader>...
    )}
export default Settings;
const Settings=({openSetting})=>{
返回(
...
)}
导出默认设置;
我想将openSetting传递给另一个文件:

const MyHeader = ({openSetting}) => {
    return (
      <Text onPress={openSetting}>Open it!</Text>
    )}
export default MyHeader ;
constmyheader=({openSetting})=>{
返回(
打开它!
)}
导出默认MyHeader;

有人知道它为什么不工作吗?

可能是您的代码输入错误导致了这个问题,而且它不工作

您创建了一个名为openSettings的函数,但将道具作为openSetting发送。试着在没有打字错误的情况下正确地书写道具名称,它应该可以工作

export default class App extends React.Component {
constructor(props) {...}

openSettings = () => { ....some changing state}

render(){
return (...
<Settings openSettings={() =>this.openSettings()}/> //<== Check this line
      );}
...};

const Settings = ({openSettings}) => { //<== Check this line
    return (
      <MyHeader openSettings={openSettings}></MyHeader>... //<== Check this line
    )}
export default Settings;


const MyHeader = ({openSettings}) => { //<== Check this line
    return (
      <Text onPress={openSettings}>Open it!</Text> //<== Check this line
    )}
export default MyHeader ;
导出默认类App扩展React.Component{
构造函数(props){…}
openSettings=()=>{…某些正在更改的状态}
render(){
返回(。。。

这个.openSettings()}/>/{/可能是您的代码中的打字错误导致了这个问题,并且它不起作用

您创建了一个名为openSettings的函数,但您将道具作为openSetting发送。请尝试在没有输入错误的情况下正确写入道具名称,它应该可以工作

export default class App extends React.Component {
constructor(props) {...}

openSettings = () => { ....some changing state}

render(){
return (...
<Settings openSettings={() =>this.openSettings()}/> //<== Check this line
      );}
...};

const Settings = ({openSettings}) => { //<== Check this line
    return (
      <MyHeader openSettings={openSettings}></MyHeader>... //<== Check this line
    )}
export default Settings;


const MyHeader = ({openSettings}) => { //<== Check this line
    return (
      <Text onPress={openSettings}>Open it!</Text> //<== Check this line
    )}
export default MyHeader ;
导出默认类App扩展React.Component{
构造函数(props){…}
openSettings=()=>{…某些正在更改的状态}
render(){
返回(。。。

this.openSettings()}/>/{//无法理解您的问题,您的意思是要传递函数“openSettings”到不同文件中的多个组件?请参阅上面的代码,我想将openSetting作为onPress操作从设置传递到MyHeader。设置和MyHeader位于不同的文件中。我可以看到,您在组件之间正确传递了函数。您有什么错误?请提供更多详细信息在“主应用程序”和“设置”。但我需要这个流:应用->设置->我的标题(它什么也不做)你的流正是你所说的你想要的,它来自应用->设置->我的标题。它正确地在组件中流动?我们缺少什么吗?无法理解你的问题,你的意思是想传递函数“openSettings”“到不同文件中的多个组件?请参阅上面的代码,我想将openSetting作为onPress操作从设置传递到MyHeader。设置和MyHeader位于不同的文件中。我可以看到,您在组件之间正确传递了函数。您有什么错误?请提供更多详细信息在“主应用程序”和“设置”。但我需要这个流:应用->设置->我的标题(它什么也不做)你的流正是你想要的,它来自应用->设置->我的标题。它在组件中正确地流动?我们缺少什么吗?你说得对,它工作-错误的键入“openSettings”和“openSetting”“。对此表示抱歉,并感谢您抽出时间。您的欢迎:)您说得对,它很有效-输入错误的“openSettings”与“openSettings”。对此表示抱歉,并感谢您抽出时间。您的欢迎:)