Существуют ли способы повторного рендеринга компонента при изменении состояния уровня компонента при использовании избыточной формы?
Я отображаю ввод с помощью пользовательского интерфейса материала для отправки пароля, завернутого в избыточныйФорма Field
компонент.Я хотел бы использовать состояние уровня компонента, чтобы контролировать, может ли клиент видеть свой пароль, а не передавать его в мое хранилище.Клиент может обновить состояние уровня компонента onClick
в пользовательском интерфейсе материала IconButton
и, таким образом, вызвать this.handleClickShowPassword
.
. Независимо от того, является ли пароль видимым, контролируется моим полем type
в Input
component.
<FormControl className={classNames(classes.textField)}>
<InputLabel htmlFor="adornment-password">Password</InputLabel>
<Input
id="adornment-password"
type={this.state.showPassword ? 'text' : 'password'}
{...input}
endAdornment={
<InputAdornment position="end">
<IconButton
aria-label="Toggle password visibility"
onClick={this.handleClickShowPassword}
>
{this.state.showPassword ? <Visibility /> : <VisibilityOff />}
</IconButton>
</InputAdornment>
}
/>
</FormControl>
с
handleClickShowPassword = () => {
this.setState(state => ({ showPassword: !state.showPassword }));
// this.forceUpdate(); this didn't work either
}
FormControl
живет в более крупной функции, называемой renderPasswordInput
в форме-избыточе Field
, например:
<Field name="password" component={this.renderPasswordInput} label="Password" />
Мой компонент не выполняет повторный рендеринг (в этом случае изменяется, отображается ли пароль), если я не изменяю значение на входе, т. Е. До тех пор, пока redux-форма не отправляет и не обновляет состояние, которым оно управляет.Существуют ли способы повторного рендеринга компонента при изменении состояния уровня компонента при использовании redux-формы?