Javascript 我应该如何重构此代码以防止函数在定义之前被使用
我犯了这个错误 “subscribe”在定义之前已使用。eslintno-use-before-define此处: 这里应该遵循什么方法 我试图用const切换函数,但是,由于我在subscribe中使用了value,所以我也会遇到同样的问题 useForm正在从另一个文件中使用,在提交表单回调->订阅后调用它:Javascript 我应该如何重构此代码以防止函数在定义之前被使用,javascript,reactjs,jsx,eslint,Javascript,Reactjs,Jsx,Eslint,我犯了这个错误 “subscribe”在定义之前已使用。eslintno-use-before-define此处: 这里应该遵循什么方法 我试图用const切换函数,但是,由于我在subscribe中使用了value,所以我也会遇到同样的问题 useForm正在从另一个文件中使用,在提交表单回调->订阅后调用它: const handleSubmit = (event) => { if (event) event.preventDefault(); if (values
const handleSubmit = (event) => {
if (event) event.preventDefault();
if (values.email !== undefined && values.email !== '') {
callback(event);
}
};
如果您不想禁用任何规则,您可以做的是预先声明函数。大概是这样的:
var subscribe;
const { values, handleChange, handleSubmit } = useForm(subscribe);
function subscribe() {
axios.post(fAction, values, {headers: {'Accept': 'application/json'}} )
then((response) => {
document.querySelector('#js-response-newsletter-message > p').innerText =
response.data.message;
});
}
看-我认为这是一个禁用规则的好地方。尽管如此,从这里的代码还不清楚这些值是否会及时定义,这使得违反规则是可以理解的哇,这是一个有趣的策略,我很惊讶它被允许了。也许这不是最好的办法,但它确实有效!我进入了另一个eslint验证eslint no-var。我设法让它这样工作:让订阅;订阅==>{…}
var subscribe;
const { values, handleChange, handleSubmit } = useForm(subscribe);
function subscribe() {
axios.post(fAction, values, {headers: {'Accept': 'application/json'}} )
then((response) => {
document.querySelector('#js-response-newsletter-message > p').innerText =
response.data.message;
});
}