Почему ValueContainer не получает isFocused prop - PullRequest
0 голосов
/ 01 ноября 2019

Я хочу переопределить с помощью пользовательского ValueContainer, в ValueContainer отображается компонент, от стиля которого зависит фокусировка Select. Почему ValueContainer не получает isFocused prop, например Placeholder, например, получает

return (
  <SelectContainer
    {...commonProps}
    className={className}
    innerProps={{
      id: id,
      onKeyDown: this.onKeyDown,
    }}
    isDisabled={isDisabled}
    isFocused={isFocused}
  >
    {this.renderLiveRegion()}
    <Control
      {...commonProps}
      innerRef={this.getControlRef}
      innerProps={{
        onMouseDown: this.onControlMouseDown,
        onTouchEnd: this.onControlTouchEnd,
      }}
      isDisabled={isDisabled}
      isFocused={isFocused}
      menuIsOpen={menuIsOpen}
    >
      <ValueContainer {...commonProps} isDisabled={isDisabled}>
        {this.renderPlaceholderOrValue()}
        {this.renderInput()}
      </ValueContainer>

В представленном фрагменте метод рендеринга Select из Select.js Вы можете видеть, что переменная isFocused находится в области видимости и может быть легко переданавниз.

1 Ответ

0 голосов
/ 01 ноября 2019

Если вы хотите, чтобы isFocused был доступен в реквизитах ValueContainer, вы должны передать его как один:

<ValueContainer {...commonProps} isDisabled={isDisabled} isFocused={isFocused}>
  {this.renderPlaceholderOrValue()}
  {this.renderInput()}
</ValueContainer>
...