Redux形式:使用组件属性的参数验证NumberInput

时间:2019-01-03 13:46:56

标签: reactjs redux redux-form

我正在使用Redux-Form v.7.3.0,我想用存储在状态中以及存储该字段的组件的props中的数字来验证NumberInput字段。

这是我的领域:

<Field
   name={MyCompononent.stackabilityName}
   component={NumberInput}
   validate={checkIfInsertedValueIsSmallerThan(this.props.stackability)}
   normalize={notNegativeAndToInteger}
/>

我想在Field Validation Documentation这里的文档中有类似内容

这是有趣的部分:

const minValue = min => value => value && value < min ? `Must be at least ${min}` : undefined

在我的字段minValue(5)的“验证”道具中以这种方式使用它。 我不想实现这一目标。我想从Field组件所在的组件的状态/属性中提取某些内容,以便动态插入最小值。

我希望有一些优雅的方法可以做到这一点。感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

documentation中所述,当您将函数传递给{ "name": "datepicker", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "start": "browserify -o 'public/bundle.js' -v -d main.js -p [ parcelify -o public/bundle.css ] " }, "author": "", "license": "ISC", "dependencies": { "react": "16.5", "react-datepicker": "^2.0.0", "react-dom": "^16.5" }, "browserify": { "transform": [ [ "babelify", { "presets": [ "@babel/preset-env", "@babel/preset-react" ] } ] ] }, "style": [ "./node_modules/react-datepicker/dist/react-datepicker-cssmodules.css" ], "devDependencies": { "parcelify": "^2.2.0", "@babel/cli": "^7.2.3", "@babel/core": "^7.2.2", "@babel/preset-env": "^7.2.3", "@babel/preset-react": "^7.0.0", "babel-core": "^7.0.0-bridge.0", "babelify": "^10.0.0", "babel-plugin-react-css-modules": "^5.0.0", "browserify": "^12.0.1" } } 组件的validate属性时,该函数将接收以下参数:

<Field>

因此,您可以执行以下操作:

customValidator(value, allValues, props, name)
// value: The current value of the field
// allValues: The values of the entire form
// props: Any props passed to the form
// name: Field name provided