我使用formy-react v1.1.5进行验证,我有大约100个输入字段,由于其代码中不必要的object.assign函数,它的输入速度令人难以置信。我知道更高版本可以解决此问题,但我现在无法更新。
我完全不了解猴子补丁,也不想使用任何补丁库来完成工作。我想了解如何修补它。
此代码:
getCurrentValues = () => (
this.inputs.reduce((data, component) => {
const { name } = component.props;
const dataCopy = Object.assign({}, data); // avoid param reassignment
dataCopy[name] = component.state.value;
return dataCopy;
}, {})
)
getPristineValues = () => (
this.inputs.reduce((data, component) => {
const { name } = component.props;
const dataCopy = Object.assign({}, data); // avoid param reassignment
dataCopy[name] = component.props.value;
return dataCopy;
}, {})
)
我要进行以下更改:
getCurrentValues = () => (
this.inputs.reduce((data, component) => {
const { name } = component.props;
data[name] = component.state.value;
return data;
}, {})
)
getPristineValues = () => (
this.inputs.reduce((data, component) => {
const { name } = component.props;
data[name] = component.props.value;
return data;
}, {})
)
谢谢。
答案 0 :(得分:0)
最简单,最快的方法:
转到“ node_modules / formsy-react / lib”,打开要修补的文件,进行更改并保存。
下次执行它时,它将使用更改后的文件。
唯一的问题是,每次在每台计算机上进行npm安装时,都需要重新做一次。
一种更好的方法是创建一个打补丁的文件.js,在package.json中创建一个脚本,将该脚本复制到正确的位置,并在README中添加一个提醒,要求您在执行npm install之后执行脚本。
可能是这样的:
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node index.js",
"patch": "mv patchedFile.js ./node_modules/formsy-react/lib/{fileName}.js"
},
在项目根目录中为patchedFile.js,并且内容与经过修改的{fileName} .js相同。
然后在“ npm install”之后执行“ npm run patch”。