【发布时间】:2019-03-19 20:35:11
【问题描述】:
我有以下代码:
main.js
submit(v) {
console.log(v);
const price = v.get("price");
}
render() {
<form onSubmit={handleSubmit(this.submit)}>
<Field
name="products"
categoryId={categoryId}
component={MyComponent}
/>
<MySubmitComponent
confirm={handleSubmit(this.submit)}
/>
</form>
}
MyComponent.js
{this.props.products.map((product, index) => (
<ProductDetails
productId={product.productId}
price={product.price}
/>
))}
ProductsDetails.js
<Field
name="price"
price={price}
component={PriceText}
initialValues
/>
const selector = formValueSelector("products");
const mapStateToProps = (state, ownProps) => {
return {
initialValues: { productId: ownProps.productId },
productId: selector(state, "productId")
};
};
ProductsDetails= connect(mapStateToProps)(ProductsDetails);
当我更改产品的价格并按下提交时,提交函数中的变量值仅包含产品的新价格而没有其 productId。我还需要 productId 来通知相应的产品。我错过了什么?
【问题讨论】:
-
您在哪里维护
products以及如何更新价格? -
@huMptyduMpty 我在数据库中维护产品,并通过单击文本字段来更新价格。这是无关紧要的,因为我主要担心的是,在我只能有一个名称和一个值的字段中,我想要另一个稳定且不会改变的道具。这是产品 ID。现在,当我更改产品的价格并按下按钮提交时,我只接受没有其 productId 的新价格。但是如果没有 productId,我将无法进一步处理新价格。是否可以将 productId 作为字段中的不可更改道具传递?
标签: reactjs react-native redux react-redux redux-form