#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, и это сработало. Спасибо