настройка атрибутов стиля работает с этим.
<Input
style={{ borderWidth: this.state.focused ? "4px" : "1px" }}
placeholder="this works"
onMouseEnter={() => this.setState({ focused: true })}
onMouseLeave={() => this.setState({ focused: false })}
/>
Однако, когда я использую атрибут суффикса или префикса компонента Input , он не работает.
<Input
style={{ borderWidth: this.state.focused ? "4px" : "1px" }}
placeholder="not this"
/*only difference is this suffix line*/
suffix={<Icon type="save" />}
onMouseEnter={() => this.setState({ focused: true })}
onMouseLeave={() => this.setState({ focused: false })}
/>
Когда я проверяю исходные коды в браузере, это дает мне причину.
1. case:
<input placeholder="this works" type="text" class="ant-input" style="border-width: 1px;">
2.case:
<span class="ant-input-affix-wrapper" style="border-width: 1px;"><input placeholder="not this" type="text" class="ant-input"><span class="ant-input-suffix"><i class="anticon anticon-save"></i></span></span>
причина 2. случайблок span поглощает стиль.
демонстрационная программа
Итак, как мне установить свой стиль на входе, который имеет атрибут суффикса / префикса.