我正在使用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组件所在的组件的状态/属性中提取某些内容,以便动态插入最小值。
我希望有一些优雅的方法可以做到这一点。感谢您的帮助!
答案 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