от
У меня был компонент панели поиска в реагировании, и я хотел иметь либо пропеллер
onSubmit
к нему, либо реквизит
onChange
, но не оба вместе. Как мне реализовать это наилучшим образом? Я пытался использовать операторы
if, но код для меня не выглядит элегантно.

class QueryBar extends PureComponent {
  render() {
    const { placeholder, leftIcon, onSubmit, onChange, width } = this.props;
    return (
       {
          e.preventDefault();
          onSubmit(e.target[0].value);
        }}
      >
        
          }
        />
      
    );
  }
}

QueryBar.propTypes = {
  width: PropTypes.number,
  placeholder: PropTypes.string,
  leftIcon: PropTypes.oneOfType(['string', 'element']),
  onSubmit: PropTypes.func
};

QueryBar.defaultProps = {
  placeholder: 'Search...',
  leftIcon: 'arrow
    

        

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

1 Ответ

0 голосов
от
Вы можете использовать троичный оператор (?) Вместо if-else.
const { placeholder, leftIcon, onSubmit, onChange, width } = this.props;
const handleSubmit = onSubmit ? onSubmit : onChange;
И использовать ту же функцию позже
Добро пожаловать на сайт ByNets, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...