Reactjs 将函数 props 传递给组件 <div> 标签上的 prop `addrow` 的值无效。从元素中删除它

Posted

技术标签:

【中文标题】Reactjs 将函数 props 传递给组件 <div> 标签上的 prop `addrow` 的值无效。从元素中删除它【英文标题】:Reactjs pass function props to component Invalid value for prop `addrow` on <div> tag. Either remove it from the element 【发布时间】:2019-11-01 22:03:30 【问题描述】:

我正在尝试将函数传递给组件,但遇到以下问题:

“Reactjs 将函数道具传递给组件 标记上的道具addrow 的值无效。要么将其从元素中删除,要么传递字符串或数值以将其保留在 DOM 中。”

代码:

constructor(props) 
    super(props);
    this.props = props;
    this.addRows = this.addRows.bind(this);


addRows() 
 console.log("AddRows")


<CreateQrModal
      show=modalAdd
      onHide=this.modalAddClose
      addrow=this.addRows
/>

组件:

  handleSubmit() 
    this.props.addrow()
  

【问题讨论】:

你能分享完整的代码吗? 这本质上,简而言之,就是App中会成为Modal的数量,我想确保当用户点击handleSubmit()函数所在的按钮时,最后它必须运行 this.props.addrow()。它似乎有效,但是当我第一次调用组件模式时,它给了我这个错误。 【参考方案1】:

来自您的代码 sn-p..

this.props.onRow() 更改为 this.props.addrow().. 似乎您输入了错误的名称。

您还可以使用箭头函数语法绕过绑定

所以addRow = () =&gt; ..... 那么您不必手动将函数绑定到构造函数中的组件。

【讨论】:

另外,最好使用大写驼峰式。我认为您只是输入错误 addrow.. 所以您可以将其更改为 addRow 不仅是我写错了。简而言之,这本质上是应用程序中将成为模态的数量,我想确保当用户单击 handleSubmit() 函数所在的按钮时,最后它必须运行它。道具.addrow()。它似乎有效,但是当我第一次调用组件模式时,它给了我这个错误。 如果我尝试将名称以大写形式写入,例如从 addrow 到 addRow,则会出现以下错误:React 无法识别 DOM 元素上的 addRow 属性。如果您有意作为自定义属性出现在 DOM 中,请将其拼写为小写 addrow。如果您不小心从父组件中传递了它,请将其从 DOM 元素中移除。 hmm 尝试在 CreateQrModal 组件中拆分你的道具 const addRow, ...rest = this.props reactjs.org/warnings/unknown-prop.html ***.com/questions/54468535/… 查看这些文章 问题是谁给了我以下错误:React 无法识别 DOM 元素上的 addRow 属性。如果您有意作为自定义属性出现在 DOM 中,请将其拼写为小写 addrow。如果您不小心从父组件传递了它,请将其从 DOM 元素中移除。即使我在 Modal 组件中不使用它,也只需将其传递给我给出错误的组件即可。

以上是关于Reactjs 将函数 props 传递给组件 <div> 标签上的 prop `addrow` 的值无效。从元素中删除它的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 React js 中的上下文将函数从 FUNCTIONAL 传递给 CLASS 组件并在渲染之外(没有 prop)访问它?

将多个引用从子组件传递到父组件-Reactjs

在ReactJS中使用迭代时如何将onClick事件传递给父组件?

如何在 React js 中将 props 传递给组件

在 ReactJs 中,从 redux 存储或从父级到子级将 props 传递给子组件的最佳实践是啥?

将函数传递给reactjs中的子组件