首页 > 解决方案 > 如何在 InpuTime 中传递带有参数的删除函数?

问题描述

我正在尝试使用参数将删除函数传递到地图中,但这就像我没有使用我的函数一样。在 onRemove 的 InputTime 中调用“remove(i)”的正确方法是什么?

Component
    
    render() {
    const {remove} = this.props;

    return(
      <>
          <InputTime
            onRemove={() => remove(i)}
            {...this.props}
          />
      </>
    )
  }
}

// another class
  handlerRemove(){
    ...
  }
return(
   <Component remove={() => this.handlerRemove()} />
)

标签: javascriptreactjstypescriptreact-native

解决方案


给你一个解决方案

render() {
    const {remove} = this.props;


    return(
      <>
        
            <InputTime
              time={hour}
              onRemove={() => remove(i)}
              {...this.props}
            />
         
      </>
    )
  }
}

由于您已经使用 进行了破坏const {values, remove} = this.props;,因此您不需要添加thisfor prop 功能。

当前代码onRemove={() => this.remove(i)}

将您的代码更改为onRemove={() => remove(i)}

随着用户稍微更改代码,基于该解决方案

Component
    
    render() {
    const {remove} = this.props;
    const arg = "test";

    return(
      <>
          <InputTime
            onRemove={() => remove(arg)}
            {...this.props}
          />
      </>
    )
  }
}

// another class
  handlerRemove(passedArg){
    console.log("passedArg", passedArg);
  }
return(
   <Component remove={this.handlerRemove} />
)

推荐阅读