首页 > 解决方案 > 检查另一个功能是否在起作用

问题描述

我使用react-select过滤我的应用程序上的标签。因此,每当用户输入标签时,它都会根据用户输入的标签生成关键字。

假设我的标签是这样的:

在此处输入图像描述

因此,它将使用 cat 和 fish 关键字生成。

在我使用react-select 的选择字段中,标签将自动添加到我的选择字段中,如下所示:

在此处输入图像描述

这已经在我的应用程序中完成了。

我现在想要的是,过滤用户使用 selectfield 输入的标签,所以每当用户选择 cat 时,它只会显示 cat 关键字。

上面的标签是由这个函数生成的,这只是我的代码片段:

onSubmit = tags => {
  if(tags.length === 0) {
    userError('Please input at least one keyword');
  } else {
    tags.forEach((tag) => {
      const marketplace = selectedCountry.value;
      apiCallRequest(marketplace, tag.value, this.userIP);
      if (this.handleChange()){  // call handleChange function here
        apiCallRequest(marketplace, tag.value=this.state.selectedOption, this.userIP);
        alert('hello from here :)')
        return onsubmit
      }
    });
  }
}

上述函数的目的是根据用户输入的标签生成关键字。

我的react-select代码类似于Installation and usage,这只是文档中的示例代码:

handleChange = (selectedOption) => {
    this.setState({ selectedOption });
    console.log(`Option selected:`, selectedOption);
  }

那里甚至handleChange()onChange调用。

因此,在这种情况下,每当用户选择其中一个选择字段时,它都会调用该handleChange()函数。

所以,我想要的是,每当函数调用时,我希望onSubmit函数也自动改变它。

那么,这样做是否可行..?我希望我的问题现在更清楚,如果没有,我会再次编辑它:)

标签: javascriptreactjsfunctionreact-nativerecursion

解决方案


在浏览器(和大多数其他 JavaScript 宿主环境)上,每个领域只有一个线程(全局环境和关联的内部对象等,例如与浏览器窗口关联的 JavaScript 环境)。假设handleChangeonSubmit在同一个领域(我确信它们是),如果你的onSubmit函数正在运行,你知道你的handleChange函数没有运行,因为handleChange不调用onSubmit. 当“活动”时,唯一handleChange可能是“onSubmit活动”的方法是 if handleChangecalled onSubmit


推荐阅读