作为回应,他们说你不能直接改变道具(或者至少你不应该)。 但是我想知道如果我在组件中有输入并且我有一个作为道具来的值怎么办?
我只是想知道这是否还可以,还有什么更好的方法呢?
// product.amount comes from props
<input type="number" value={product.amount} onChange={(e) => onChangeProductAmount(e)}/>
所以看来我想在输入更改时更改product.amount,但是它在props中,所以我不应该这样做。 那我该怎么办?
答案 0 :(得分:0)
由于道具来自redux,因此您只能以redux的方式进行更改:调用将触发动作的动作创建者。
有些软件包可以做到这一点。我对redux-form并不熟悉,但是据我所知,这是一个在redux中保持表单状态的软件包。您可以自己实现类似的事情。
我的工作方式有所不同:我使用本地状态来控制输入。当用户单击“提交”时,如果值有效,我将调用操作创建者,该创建者将触发可更改需要在redux存储中进行更改的操作。但是,您所做的这些更改不会直接反映在表单中。
前一段时间,我实现了一个小应用程序,可以用这种方式处理表格。您可能会发现有帮助:https://github.com/rahamin1/reactstrap-form