React Component onClick方法不评估括号属性访问器

时间:2018-08-15 22:01:52

标签: javascript reactjs

使用bubel包的BUTTLOAD来处理旧版React项目(最近升级到v16),

基本上,我正在尝试为按钮动态分配onClick函数。但是没有评估对象属性访问器。相反,我只是收到一个错误,您可以在下面看到。

这是了解此问题的最低代码。

const myVariable = 'someFunction';

const MyComponent = props =>
  <button
    onClick={props[myVariable]('some value')}
  />

<MyComponent
  someFunction={value => () => console.log(value)}
/>

TypeError: props[myVariable] is not a function

就像,为什么表达式甚至没有在错误中求值?

1 个答案:

答案 0 :(得分:0)

由于传递的prop不是函数(显然),可能发生此错误TypeError: props[myVariable] is not a function

您需要提供一个真实的示例或您的所有babel配置,因为这样,我们可以知道babel是否存在问题或您传递的道具错误。

此外,如果您像onClick={props[myVariable]('some value')}那样传递,则在解释时间时,它将立即执行该功能。那时props[myVariable]可以是其他东西,也可以是未定义的,这就是您得到错误的方式。

正确的方法是像onClick={() => props[myVariable]('some value')}