• react传递方法 警告


    报错现象如下

    产生原因如下

    分析

    在调用 React.cloneElement 的时候 如果第二个属性传入props, 需要看第一个参数传递的是 react组建还是 html标签

    如果是html标签就会导致上面的警告

    大意是方法会被忽略 因为这样相当于 往 div 等原声元素里 传入 onBd 自定义事件 是会被忽略等

    错误代码/场景分析

    我们在弹窗里传入

    123
    以及 两个回掉事件

     <PopOver titleDone="Done" visible={this.state.showFilterFlag}
              onShow={() => console.log('done actio1n')}
                        onDone={() => console.log('done action')}>
              {/* <FilterRecipient></FilterRecipient> */}
                  <div>123</div>
            </PopOver>
    
    

    弹窗组建 会把两个事件绑定在头部等两个按钮回掉里,同事吧 外部传进来的 children 作为内容,

    产生错误就是因为 { onBd: onShow, onD: onDone }这一句

    为什么要加这一句?

    因为考虑到 有一种情况 是需要外部传进来的组建可以调用 onShow 和onDone 这个方法。比如我想点击123 时候关闭弹窗,

    解决办法也很简单

    外部不要传入

    123
    这样的元素 而是传递 react组建进来

    比如 function demo() {return

    123
    } 因为只有组建才能接受props

    补充

    如果直接 写如下代码 是不报错的

    var  onShow = function() {
    
    }
    var  onDone = function() {
    
    }
    var a = React.cloneElement(
    <div>123</div>, {onShow, onDone}
    )
    
  • 相关阅读:
    ContextMenustrip 控件
    Toolstrip 工具栏控件
    Menustrip控件和ContextMenustrip控件
    TabControl 选项卡控件
    GroupBox 分组框控件
    Pnel控件
    【bzoj3427】Poi2013 Bytecomputer dp
    【bzoj3174】[Tjoi2013]拯救小矮人 贪心+dp
    【bzoj1334】[Baltic2008]Elect 背包dp
    【bzoj1369】[Baltic2003]Gem 树形dp
  • 原文地址:https://www.cnblogs.com/WhiteHorseIsNotHorse/p/10595519.html
Copyright © 2020-2023  润新知