Повторно используемое текстовое поле в React

#reactjs #material-ui #react-hooks #react-material

#reactjs #материал-пользовательский интерфейс #реагирующие хуки #react-материал

Вопрос:

Я использую повторно используемое текстовое поле в пользовательском интерфейсе Material в React, и у меня возникла проблема с использованием условия. Мне не нужно использовать InputLabelProps , если оно не передается ему.

Пожалуйста, проверьте мое повторно используемое текстовое поле ниже

     <TextField
      fullWidth
      type={prop.type}
      label={prop.label}
      name={prop.name}
      variant="outlined"
      value={prop.value}
      onChange={prop.handleChange}
      onBlur={prop.onBlur}
      helperText={prop.helperText}
      error={prop.error}
     {prop.InputLabelProps ? InputLabelProps={{
        shrink: prop.InputLabelProps,
      }} : ''}
    />
  

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

1. @Jayce444. Отлично! Спасибо. Пожалуйста, укажите это в качестве ответа

2. отлично, добавил его

Ответ №1:

Просто установите для него значение undefined, если его нет:

 InputLabelProps={prop.InputLabelProps ? { shrink: prop.InputLabelProps } : undefined}.
  

Если вы установите для prop значение undefined в большинстве случаев, оно будет действовать так, как будто вы его вообще не передавали

Ответ №2:

Вы можете добиться этого, добавив условный оператор перед троичным оператором,

      {prop.InputLabelProps amp;amp; prop.InputLabelProps ? InputLabelProps={{
        shrink: prop.InputLabelProps,
      }} : ''}
  

Ответ №3:

Интересно, работает ли этот синтаксис. Что вы можете сделать, так это передать неопределенное значение, если ваше условие не соответствует приведенному ниже:

 <TextField
      fullWidth
      type={prop.type}
      label={prop.label}
      name={prop.name}
      variant="outlined"
      value={prop.value}
      onChange={prop.handleChange}
      onBlur={prop.onBlur}
      helperText={prop.helperText}
      error={prop.error}
      InputLabelProps=
      {
        props.InputLabelProps 
        ? { shrink: props.InputLabelProps } 
        : undefined
      }
    />