Reactjs 从道具获取输入值

Reactjs 从道具获取输入值,reactjs,forms,Reactjs,Forms,在react中,他们说你不能直接改变道具(或者至少你不应该)。 但我想知道,如果我在组件中有一个输入,并且我有一个作为道具的值,我该怎么办 我只是想知道这是否可以,还有什么更好的方法 // product.amount comes from props <input type="number" value={product.amount} onChange={(e) => onChangeProductAmount(e)}/> //product.amount来自道具 onC

在react中,他们说你不能直接改变道具(或者至少你不应该)。 但我想知道,如果我在组件中有一个输入,并且我有一个作为道具的值,我该怎么办

我只是想知道这是否可以,还有什么更好的方法

// product.amount comes from props
<input type="number" value={product.amount} onChange={(e) => onChangeProductAmount(e)}/>
//product.amount来自道具
onChangeProductAmount(e)}/>
所以当输入改变时,我似乎想改变product.amount,但这是在道具中,所以我不应该这样做。
那我该怎么办呢?

因为道具来自redux,所以你只能用redux的方式来更改它们:调用动作创建者来触发动作

有这样的软件包。我不熟悉redux表单,但据我所知,它是一个在redux中维护表单状态的包。您可以自己实现类似的事情

我的做法不同:我使用本地状态来控制输入。当用户单击“提交”时,如果值有效,我将调用action creator,该操作将触发更改redux存储中需要更改的内容的操作。但是,这些更改不会像您希望的那样直接反映在表单中


不久前,我实现了一个小应用程序,它以这种方式处理表单。您可能会发现它很有用:

因为道具来自redux,所以您只能以redux的方式更改道具:调用将触发动作的动作创建者

有这样的软件包。我不熟悉redux表单,但据我所知,它是一个在redux中维护表单状态的包。您可以自己实现类似的事情

我的做法不同:我使用本地状态来控制输入。当用户单击“提交”时,如果值有效,我将调用action creator,该操作将触发更改redux存储中需要更改的内容的操作。但是,这些更改不会像您希望的那样直接反映在表单中


不久前,我实现了一个小应用程序,它以这种方式处理表单。您可能会发现它很有用:

Yrs它们来自父组件。但不是,父组件也从redux接收这些值作为道具。父组件没有状态来获取它。我只是觉得仅仅对一个输入使用redux表单会很奇怪(我不喜欢redux表单。我更喜欢使用本地状态,就像我在我的软件包中所做的那样。但我想这两种方法都是有效的……这是一个品味问题。它们来自父组件。但是不,父组件也从redux接收这些值作为道具。父组件没有状态。我只是觉得使用redux f会很奇怪。)orm只是我的一个输入(我不喜欢redux表单。我更喜欢使用本地状态,就像我在我的包中所做的那样。但我想这两种方法都是有效的……只是口味的问题。