我的方法目前在我的组件类之外。 我如何重构它,以便它可以放在组件类中?
请忽略其他功能。 我只需要在预期的'中加入重构的myFunction。部分。
你能帮帮我吗?
const myFunction = (code, data) => (isValid, availableCodes, defaultValue) => {
if(isValid) {
const isAvailableCode = isEmpty(availableCodes) || includes(availableCodes, code);
return isAvailableCode ? get(data, 'originalQty') : defaultValue;
}
return defaultValue;
}
export default class MyComponent extends Component {
render() {
const { code , data, minValueAllowed, offersNotAllowed } = this. props;
const getMinValue = myFunction(code, data);
const minQty = getMinValue(minValue, offersNotAllowed, 0);
return (
<div>
<Spinner
minQty={minQty}
data={data}
/>
</div>
);
}
};
export default class MyComponent extends Component {
//refactored myFunction here....
render() {
const { code , data, minValueAllowed, offersNotAllowed } = this. props;
const getMinValue = myFunction(code, data);
const minQty = getMinValue(minValue, offersNotAllowed, 0);
return (
<div>
<Spinner
minQty={minQty}
data={data}
/>
</div>
);
}
};
答案 0 :(得分:1)
这应该有效。请注意在渲染方法中将“this”添加到myFunction。
export default class MyComponent extends Component {
myFunction = (code, data) => (isValid, availableCodes, defaultValue) => {
if(isValid) {
const isAvailableCode = isEmpty(availableCodes) || includes(availableCodes, code);
return isAvailableCode ? get(data, 'originalQty') : defaultValue;
}
return defaultValue;
};
render() {
const { code , data, minValueAllowed, offersNotAllowed } = this. props;
const getMinValue = this.myFunction(code, data);
const minQty = getMinValue(minValue, offersNotAllowed, 0);
return (
<div>
<Spinner
minQty={minQty}
data={data}
/>
</div>
);
}
};