当前位置: 首页 > 知识库问答 >
问题:

不能使用预定义的绑定函数

鲁鹤轩
2023-03-14

我使用react-bootstrap-datetimerangepicker库和bind()从日历中获取选定的日期,但是这个库的“on apply”函数传递了两个参数(event、picker),在“预定义”中,我没有得到假定出现在第二个参数中的startDate和endDate。没有束缚它就不起作用

<DatetimeRangePicker
    timePicker
    showDropdowns
    timePicker24Hour
    onApply={this.handleChange.bind(this, 'predefined')} />


handleChange(event, picker) {
        this.props.sendDateRanges(payload);
    }

https://github.com/luqin/react-bootstrap-datetimerangepicker

共有1个答案

包子航
2023-03-14

您需要将this绑定到handleChange函数,使其具有词法作用域。否则,HandleChange不知道组件的this,因为它是块作用域。要绑定的第二个/后续参数在您的情况下是不必要的。上面所做的只是将字符串“predefined”前置到arguments数组。相反,只需将绑定函数传递给onApply道具即可。

onapply={this.handlechange.bind(this)}

如果您使用es6类来定义组件,一个常见的模式是在构造函数中预绑定所有事件处理程序和函数。

constructor(props) {
   super(props)
   this.handleChange = this.handleChange.bind(this)
}
handleChange(event, picker) {
   //code
}
render() {
    return <div onChange={this.handleChange} />
}

如果您想要变得更漂亮,可以使用隐式绑定词法作用域的箭头函数语法。在任何地方都不需要调用bind。

handleChange = (event, picker) => {
    //code
}
render() {
    return <div onChange={this.handleChange} />
}
 类似资料:
  • 本文向大家介绍OCaml 用let绑定定义函数,包括了OCaml 用let绑定定义函数的使用技巧和注意事项,需要的朋友参考一下 示例 可以使用let以下方式给值命名: 您可以使用类似的语法来定义函数。只需为参数提供其他参数即可。 我们可以这样称呼它: 我们可以像这样直接传递值,也可以传递绑定到名称的值: 定义某些内容后,解释器给出的行是带有类型签名的对象的值。当我们给它提供一个简单值绑定到时a,它

  • 我正在尝试为PGInterval和Duration编写一个自定义数据类型绑定,以将jOOQ与TimescaleDB一起使用。遗憾的是,jOOQ在为数据库例程生成函数时没有使用它。 这是我的绑定类: 这是我在pom中的配置: 例如,我希望jOOQ生成例程 像 但是我得到了

  • 问题内容: 我正在使用PDO,是否需要清理GET参数? 我知道我是否比那不是问题。但是我的方式安全吗? 问题答案: 是的,这很安全。和之间的唯一区别是: 一次接受多个参数,而每个参数都必须 允许您指定参数类型,同时将所有内容绑定为字符串 将参数传递给通常是一个方便的快捷方式,它仍然是安全的。

  • 自定义绑定(Custom Binding)允许我们通过代码实现自定义绑定规则,从而完成更高级的业务需求。 示例代码 //.js片段 justep.Bind.bindingHandlers.yourBindingName = { init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {

  • 我是android开发的新手,我正在尝试创建一个自定义的适配器,为RecyclerView提供一个只包含一个图像和一个文本视图的视图。 但是,我试图为onBindViewHolder(VH,int)定义一个简单的扩展ViewHolder,而Android studio根本不会采用自定义ViewHolder,'MyViewHolder' - 说“该方法不会覆盖其超类中的方法。 如果我把参数变成一个普

  • Android提供了通过数据绑定在UI上显示数据的新概念。我试着在我的一个应用程序上实现它。在实现Lambda表达式作为按钮的单击处理程序时,我需要一个常量,即view.visible来在表达式中比较它。但是当我编写下面的代码时: