I am using redux-form 6.0.0-rc.5 and I am trying to display the form values as they are entered by the user.
However, I want these values to be displayed from another component, not the redux form itself.
So, my simplified App architecture would be like that :
<App /> -> (main component -container ?-)
<List /> -> (connect to form values and pass them down)
<Elem /> -> (display form value)
<Form /> -> (enter form values)
The component is a redux-form mounted to 'form' and is working.
Form = reduxForm({
form: 'formName'
})(Form)
What would be a good way of getting the form values (from state form.formName.values) and send them to my Display component ?
Things I have tried :
Connect App to the store and mapStateToProps (form.formName.values) then pass it down to Display as a prop. But it throws an error since values does not exist in the form state until the user has typed anything.
Using the function getFormValues('formName') provided by redux-form inside the List component but it returns a function or undefined :
Elem
const Elem = ({ name }) => (
<li>{name}</li>
)
List
const List = ({ values }) => (
{values.map(value => <Elem name={value.name} />)}
)
List = connect(
state => ({
values: getFormValues('formName')
})
)(List)
There must be something I am missing or I still do not understand correctly whether it is with redux-form or redux itself... I hope someone will be able to enlighten me !
Thank you and have a great day.
formValueSelector()
is not necessary.You also can directly access it as a property.
Same as
Try using
instead. At least that's how it worked in v5, although there the method was called
getValues
and notgetFormValues
.Edit: After a quick look at the docs it seems in v6 you'll have to use a
formValueSelector
: http://redux-form.com/6.0.0-rc.3/examples/selectingFormValues/I had the same problem. Apparently, 'values' is a saved name in redux-form. Using Iurii Budnikov advice I managed to solve the problem - just change the the variable name from 'values' to something else in your connect call:
Starting from redux-form
6.0.0
(and still the same in7.0.0
), you can use the functionformValueSelector()
to select values from any redux form you have in your application: http://redux-form.com/7.0.0/docs/api/FormValueSelector.md/