значение реквизита, которое зависит от других реквизитов, не обновляется

#reactjs #react-props

#reactjs #react-props

Вопрос:

Интересно, почему color реквизит не обновляется, когда isSelected изменения равны value .

Мой компонент

 const MyChip = (props: any) => {
  const enhancedProps = {
    ...props,
    variant: 'outlined',
    label: props.title,
    color: (props.isSelected === props.value) ? 'primary' : 'default'
  }

  return <MuiChip {...enhancedProps} />
}
 

1-й рендеринг

 {
  isSelected: ""
  onChange: e => {…}
  onClick: () => handleClick(option.value)
  title: "My Input"
  value: "my_value"
}
 

После щелчка по MyChip компоненту, вот реквизиты

2-й рендеринг

 {
  isSelected: "my_value"
  onChange: e => {…}
  onClick: () => handleClick(option.value)
  title: "My Input"
  value: "my_value"
}
 

Однако color реквизит в моем MyChip компоненте не обновляется, и 2-й щелчок по компоненту больше не запускает рендеринг.

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

1. Где baseProps объявлено и где вы используете enhancedProps ?

2. Извините, это опечатка. Оба являются enhancedProps . Но проблема остается

3. enhancedProps содержит специальный символ, поэтому он не сработал.

4. У вас нет опечатки props.isSelected props.isSeleced , голосуйте за закрытие опечатки

5. @DennisVash это то, что я считал специальным символом, потому что я попытался переписать объект enhancedProps, и это сработало. Спасибо