Мое значение inputValue сбрасывается в 0 после вызова addAmount.Я вижу, что хранилище обновляется до 0 с помощью инструментов приставки, однако мое входное значение не сбрасывается до 0. Я знаю, что изменяющееся состояние реакции / приведения является распространенной проблемой, но я просто не могу разобраться.
Я вырезал код из-за почтовых ограничений.
Редуктор
case actions.RESET_INPUT_VALUE:
return {
...state,
inputValue: action.payload
};
default:
return state;
}};
Действия
export const resetInputValue = value => ({
type: actions.RESET_INPUT_VALUE,
payload: value
});
Реагирующий компонент
class TheBox extends Component {
constructor(props) {
super(props);
this.state = { value: 0 };
this.handleChange = this.handleChange.bind(this);
}
addAmount = e => {
e.preventDefault();
const addToTotal =
this.props.state.dayIntakeAmount + this.props.state.inputValue;
this.props.onAddAmount(addToTotal, this.props.state.date);
this.props.onResetInputValue(0);
console.log(this.props.state.inputValue);
};
handleChange = e => {
this.props.onInputChange(e.target.value);
};
<form onSubmit={this.addAmount}>
<Input
type="number"
required
name="inputValue"
value={this.props.state.inputValue}
onChange={this.handleChange}
suffix="ml"
/>
<Button
success
type="submit"
disabled={this.props.state.inputValue <= 0}
>
ADD
</Button>
</form>
const mapStateToProps = state => ({
state
});
const mapDispatchToProps = dispatch => ({
onAddAmount: (amount, date) => dispatch(plusIntakeAmount(amount, date)),
onInputChange: value => dispatch(onInputChange(value)),
onResetInputValue: value => dispatch(resetInputValue(value))
});
export default connect(
mapStateToProps,
mapDispatchToProps
)(TheBox);