как я могу передать свою функцию удаления с параметром внутри InpuTime?

#javascript #reactjs #typescript #react-native

Вопрос:

Я пытаюсь передать функцию удаления на карту с параметром, но это похоже на то, что я не использую свою функцию. Как правильно было бы вызвать «удалить(i)» внутри времени ввода в onRemove?

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

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

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

Ответ №1:

Вот вам и решение

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


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

Поскольку вы выполнили разрушение с помощью const {values, remove} = this.props; , вам не нужно добавлять this функцию для поддержки.

Текущий код 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} />
)
 

Комментарии:

1. интересное объяснение, спасибо. Я пробовал этот способ, и он не сработал. Я передаю функцию из класса в этот класс следующим образом: <Компонент onRemove={this.handleRemoveTime} />

2. @RenanFernandes добавьте некоторые изменения, посмотрите

3. спасибо, но моя проблема все еще не решена. Если моя функция handleRemove получит параметр, как я отправлю его через onRemove? @Shiladitya