【问题标题】:Executing multiple functions in the onPress function with props使用 props 在 onPress 函数中执行多个函数
【发布时间】:2019-12-09 18:59:59
【问题描述】:

我目前正在创建一个 naughts and crosss 游戏。我快完成了,当我在任何一个盒子上计时时,图标就会显示在盒子里。但是,我只能显示一个,naughts 或 crosss。到目前为止我的代码:My App.js script and the component for each box in the grid

我的 app.Js 脚本用于管理确定转弯的状态,并且在 App.js 文件中创建了一个每次按下框时都会更改状态的函数,并作为 props 传递给 Box.js 文件.此外,Box.js 文件中还有一个显示 naught 或 cross 的函数。当我想将这些函数中的任何一个传递给 onPress 函数时,它们都可以正常工作。只有当我尝试将这些功能放在一起时才会出现问题。

这是我尝试过的:onPress= {() => {props.swicthTurn; Change;}

【问题讨论】:

  • 欢迎来到 Stack Overflow! SO 的工作方式,您的整个问题(包括任何必要的代码)必须in 您的问题,而不仅仅是链接。两个原因:人们不应该去场外帮助你;和链接腐烂,使问题及其答案对未来的人们毫无用处。请在问题中输入minimal reproducible example in。更多:How do I ask a good question?Something in my web site or project doesn't work. Can I just paste a link to it?
  • "这是我尝试过的:onPress= {() => {props.swicthTurn; Change;}" 如果这些是函数,那么您只是指代它们,而不是 调用我>他们。你需要() 在他们之后调用它们:onPress= {() => {props.swicthTurn(); Change();}(但我怀疑Change() 不是一个独立的函数,你可能需要在它前面有x.,其中x 是对象你想调用那个方法。)

标签: javascript reactjs react-native native onpress


【解决方案1】:

你需要调用这两个函数而不是仅仅传递它们

onPress= {() => {
    props.swicthTurn();
    Change();
}

当您通过名称将函数传递给 onPress 属性时,它会为您调用它,但是当您传入内联函数时,您必须执行您可能使用的任何子函数。

另外,如果这些函数中的任何一个需要自行传递给它们的事件变量,您需要手动传递该变量:

onPress= {e => {
    props.swicthTurn(e);
    Change(e);
}

【讨论】:

    【解决方案2】:

    你应该使用 onPress = {() => {props.swictchTurn();改变();} 你应该给 onPress 函数,{() => {}} 是函数声明。你应该在这个里面调用子函数。

    【讨论】:

      猜你喜欢
      • 2021-05-11
      • 1970-01-01
      • 1970-01-01
      • 2013-04-23
      • 1970-01-01
      • 2018-09-02
      • 1970-01-01
      • 1970-01-01
      • 2020-04-03
      相关资源
      最近更新 更多