javascript - 我应该如何重构这段代码以防止函数在定义之前被使用

标签 javascript reactjs jsx eslint

我收到此错误 'subscribe' 在定义之前被使用。eslint(no-use-before-define) 这里:

    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;
        });
    }

这里应该遵循什么方法?

我尝试用 const 切换 function 但是,我会遇到同样的问题,因为我在 subscribe() 中使用 value .

useForm() 正在从另一个文件中使用,并在提交表单后调用(callback() -> subscribe()):

  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;
    });
 }

example in ESLint editor

关于javascript - 我应该如何重构这段代码以防止函数在定义之前被使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57457513/

相关文章:

html - 在 nextjs 中将背景图像设置为 div 不起作用

javascript - Angular routerLink - 当你想添加额外的 url 文本时,正确的语法是什么?

javascript - 过滤器从 react 数组中删除一个元素

javascript - 将 JS 变量设置为 PHP 变量错误

javascript - 当从 RxJS 订阅回调更改时,复选框选中的属性不会更新元素

reactjs - Nextjs - 如何在客户端浏览器中存储 JWT,以便在浏览器重新启动后仍能保存

reactjs - React 样板中的服务器端渲染

javascript - aframe- react ;写入新组件错误

javascript - redux-form 的 `meta : { touched, error }` 位于哪里?当它不包含在 renderField 范围内时我可以访问它吗?

javascript - 按 "enter"键时停止 VSCode 触发建议