【发布时间】:2017-08-26 08:38:19
【问题描述】:
我的应用中有很多表单。我在其父级减速器下为它们中的每一个创建了一个单一的表单减速器并将它们组合起来。为了获取他们的数据,我正在使用getFormState,在获取表单状态方面一切正常,但是在所有 redux-form reducer 中重复的 redux 状态活动形式!!!
每个 redux-form 操作都适用于所有表单。
我不知道如何与您分享所有可以呈现整个情况的代码。但我尝试在这里分享一些代码:
这是我的注册表单:
SigninForm = reduxForm({
form: 'signin',
validate,
getFormState: ({ auth }) => auth.signin.form
})(SigninForm)
注册reducer
import { combineReducers } from 'redux'
import { reducer as reduxFormReducer } from 'redux-form'
const signin = combineReducers({
error,
isLogging,
form: reduxFormReducer
})
export default signin
和过滤器形式:
export default compose(
connect(null, { ...actions }),
reduxForm({
form: 'filters',
destroyOnUnmount: false,
initialValues: {
pool: 'either',
open_house: false,
listing_statuses: {
...activeStatuses
},
property_subtypes,
minimum_sold_date: '3', // unit is month but it need to timestamp
minimum_bedrooms: 'any',
minimum_bathrooms: 'any',
minimum_parking_spaces: 'any'
},
getFormState: ({ search }) => search.filters.form
}),
withHandlers({
onSubmitHandler: ({ submitFiltersForm }) => values => {
submitFiltersForm(values)
}
})
)(Filters)
还有我的根减速器:
const appReducer = combineReducers({
socket,
user,
auth,
brand,
search,
routing: routerReducer,
listing: createNamedWrapperReducer(listing, 'LISTING')
})
export default (state, action) => appReducer(state, action)
P.S:当我在根减速器中使用单个表单减速器而不使用 getFormState 时,一切正常。
OS: Mac,
node: 8.3.0,
react: 15.4.2,
redux: 3.6.0,
redux-form: 7.0.0,
browser: 60.0.3112.101 (Official Build) (64-bit)
【问题讨论】:
-
请分享代码相关代码
-
@RIYAJKHAN 我做到了。
标签: reactjs redux redux-form