У меня следующая проблема:
Я хочу показать некоторые товары.Когда вы нажимаете кнопку «Далее», вызывается goForward (), и вы видите следующий продукт.Моя проблема заключается в том, что когда submit () вызывается после нажатия другой кнопки с именем Submit, переменная values не содержит текущий productId показанного продукта.Вместо этого он содержит свое первоначальное значение.Что не так?
class MyComponent extends Component {
constructor(props) {
super(props);
this.state = {
activeIndex: 0
};
this.submit = this.submit.bind(this);
this.goForward= this.goForward.bind(this);
}
submit(values) {
console.log(values);
}
goForward() {
let index = this.state.activeIndex;
let productsSize = products.length - 1;
if (index === productsSize) {
index = -1;
}
++index;
this.setState({
activeIndex: index
});
}
render() {
<form onSubmit={handleSubmit(this.submit)} name="edit">
{this.props.products.map((product, index) => (
<ProductDetails
productId={product.productId}
price={product.price}
/>
))}
</form>
}
let MyProductComponent = reduxForm({ form: "edit", enableReinitialize: true
})
(MyComponent);
const mapStateToProps = (state, ownProps) => {
return {
initialValues: {
productId: formValueSelector("edit")(
state,
"activeIndex"
)
}
};
};
MyProductComponent = withRouter(
connect(mapStateToProps)(toJS(MyProductComponent))
);