javascript - 如何使用参数更改组件本地状态?

标签 javascript reactjs ecmascript-6

我在尝试使用参数更改组件的本地状态时遇到一些问题。

这是我的代码:

class App extends Component {
  state = {
    startup: '',
    investor: '',
    realState: '',
    ecoProject: '',
  };

  handleChangeCardSelection = async (e, stateValue, otherCards) => {
    const currentCard = await e.currentTarget.id;

    this.setState({
      [stateValue]: currentCard,
      [otherCards]: '',
    });
  };

  render() {

   const { startup, investor, realState, ecoProject } = this.state;

   return(
     <Card
        id="investor"                  
        onClick={e => this.handleChangeCardSelection(e, [investor])} />
   )
  }
}

所以,基本上我不想为状态中的每个项目创建一个新函数。

我想要的只是调用 this.handleChangeCardSelection 函数,然后设置我想要的项目的值,并为状态中的其他值设置空字符串。

就像上面的代码一样,我需要执行以下操作:

this.setState({
    investor: 'investor' // or any other value to fill the string
    startup: '',
    realState: '',
    ecoProject: '',
  })

现在我从点击调用的函数中得到的是这样的状态:

"": "investor"
ecoProject: ""
investor: ""
realState: ""
startup: ""
undefined: ""

我错过了什么?

最佳答案

[投资者]更改为投资者

onClick={e => this.handleChangeCardSelection(e, investor)} />

关于javascript - 如何使用参数更改组件本地状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55579429/

相关文章:

javascript - 对于类的每个元素,检查内容以查看它是否包含字符串,然后仅更新该元素(如果包含)

javascript - 检查条件是否与 Javascript 中数组的任何值匹配

javascript - 通过 state.value ReactJS 将 textarea 值复制到新组件

javascript - ECMAScript 2017 : Difference between string literal, StringValue、字符串值和 SV

javascript - 如何在 Javascript/jQuery 中使用 if 语句和 .each() 循环一一删除类?

javascript - 不影响前面层的 HTML Canvas globalCompositeOperation

javascript - 如何将提议的 ECMAscript 类语法与 React 和 Webpack 结合使用?

javascript - WebStorm Unresolved 变量警告

javascript - 将 React 组件导出为数组的最简洁方法是什么?

javascript - 如何为中型网站构建前端 Javascript