Javascript 在筛选器if语句中拨号时遇到问题-多个下拉列表

Javascript 在筛选器if语句中拨号时遇到问题-多个下拉列表,javascript,reactjs,if-statement,filter,Javascript,Reactjs,If Statement,Filter,我想要的功能: 下拉列表1=位置 下拉列表2=技能 当用户从下拉列表中选择位置和从其他下拉列表中选择技能时,将显示结果(目前有效) 但我遇到的问题是“所有地点”和“所有技能” [注意]我无法更改来自API的数据 目前页面加载时没有人(如果默认为所有位置所有技能显示,那就更好了),下拉列表设置为“所有位置”和“所有技能,但我不知道如何使这些状态有任何意义 或者如何说“所有地点”意味着你在看所有的人,或者说技能是一样的 任何帮助都会很好。这就是我目前所处的位置 我猜这可以通过一个if-else语句或

我想要的功能: 下拉列表1=位置 下拉列表2=技能

当用户从下拉列表中选择位置和从其他下拉列表中选择技能时,将显示结果(目前有效)

但我遇到的问题是“所有地点”和“所有技能” [注意]我无法更改来自API的数据

目前页面加载时没有人(如果默认为所有位置所有技能显示,那就更好了),下拉列表设置为“所有位置”和“所有技能,但我不知道如何使这些状态有任何意义

或者如何说“所有地点”意味着你在看所有的人,或者说技能是一样的

任何帮助都会很好。这就是我目前所处的位置 我猜这可以通过一个if-else语句或者两个if-else语句来实现。我不知道,我开始感到困惑了

 constructor(props) {
    super(props);
    this.state = {
      developers: [],
      filterCountry: "All locations",
      filterSkills: "All skills"
    };
  }

  componentDidMount() {
    fetch('API')
    .then(features =>  features.json())
    .then(developers => {
      this.setState({  developers })   
    })
  }

  filterCountry(e){
    this.setState({filterCountry: e })
  }

  filterSkills(e){
    this.setState({filterSkills: e })
  }

  render() {

    let developers = this.state.developers.features

    if (!developers ){
      return null
    }

   if  (this.state.filterCountry && this.state.filterSkills) {
      developers = developers.filter( developer =>
      developer.properties.continent
        .includes(this.state.filterCountry )
        )

     developers = developers.filter( developer =>
      developer.properties.skills 
        .includes(this.state.filterSkills )
        )

    }
任何帮助都将不胜感激

console.log(developers)
(20) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}]
0
:
geometry
:
{coordinates: Array(2), type: "Point"}
id
:
"22bcd3917f78652cc62ee6908f057ceb"
properties
:
company_name
:
"redacted"
continent
:
"North America"
description
:
""
email
:
"redacted"
github
:
"redacted"
linkedin
:
""
location
:
"Sunnyvale, CA USA"

name
:
"redacted"
skills
:
""
skills_full
:
""
twitter
:
""
website
:
""
__proto__
:
Object
type
:
"Feature"
__proto__
:
Object

如果您只想在状态为
filterCountry=“所有位置”和
filterSkills=“所有技能”

您可以在过滤器中执行以下操作:

developers = developers.filter( developer => { 
    return this.state.filterCountry === 'All locations' || developer.properties.continent.includes(this.state.filterCountry)
});

开发者
的形状是什么样子的?你想在什么时候看到它变化?
这个。状态。开发者
在抓取完成后让我知道控制台的图像是否会更好,它是一个包含所有开发者的数组。这是一个有点让人困惑的部分。就像选择了北美一样d然后是所有技能。它仍然需要为北美的所有开发人员进行筛选…这有意义吗?对,您需要在其他筛选功能中执行相同的操作。似乎对位置很有效,…但对技能没有那么多。就像我将选择北美&所有技能,这应该会向我展示北美的所有开发人员t什么都没有出现。.我需要再玩一点。
是否将此.state.filterSkills==='All Skills'| |…
返回到您的技能筛选函数?啊,它现在可以工作了。.“All Skills”需要是“All Skills”…谢谢