首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过选择并切换到reactjs中的任何一个选项来获得父组件变量中的一个值?

如何通过选择并切换到reactjs中的任何一个选项来获得父组件变量中的一个值?
EN

Stack Overflow用户
提问于 2020-03-11 09:20:50
回答 2查看 149关注 0票数 2

我是新的反应,并作出了一个小游戏组件,其中有indooroutdoor的选择。在户外项目中,我们有2个单选按钮,而在室内项目中,我们有多个复选框。我的目标是,我们只能得到一个值,无论是在室外或室内游戏领域(室内游戏可能有多个值)。但却不知道如何从这些领域中获得价值。

适用于室内和室外:

代码语言:javascript
复制
   <Form>
            <Form.Field
              as="h4"
              control={Radio}
              label="Foot-Ball"
              key="Foot-Ball"
              value="Foot-Ball"
              checked={this.props.game === "Foot-Ball"}
              onChange={this.props.onChange}
            />
            <Form.Field
              as="h4"
              control={Radio}
              label="Cricket"
              key="Cricket"
              value="Cricket"
              checked={this.props.game === "Cricket"}
              onChange={this.props.onChange}
            />{" "}
          </Form>

我是用这种方式得到输出的

我的目标是变量game,要么我应该得到单选按钮值,要么我必须得到室内游戏值,但不能同时得到游戏变量。

有人能帮我吗?

这是一个有用的例子:"https://codesandbox.io/s/tender-moon-frub1?“

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-15 08:19:23

问题:-- game状态从室内和室外输入混合获得状态,当您尝试在前一个州的户外游戏game字符串中扩展时,它们会被解释为字符数组,因为它们是可迭代的。它们会在一个时间里传播开来。

期望值:(户外游戏单选按钮之一),结果值字符串,,一个室内游戏数组,检查值id字符串。

解决方案:添加第二种状态来跟踪您正在交互的“选项卡”,即室内/室外。(即使用事件处理程序被调用的事实)

代码语言:javascript
复制
this.state = {
  indoor: null,
  game: ""
};

在与“户外”单选按钮交互时添加切换indoor false。

代码语言:javascript
复制
handleRadioSelect = (e, { value }) => {
  this.setState({ indoor: false, game: value });
};

然后使用“室内”复选框处理程序中的检查来查看是否已经与室内选项交互,或者UI是否刚刚从室外切换。

代码语言:javascript
复制
handleCheck = id => {
  const { game, indoor } = this.state;

  if (!indoor) {
    // switching from outdoor games
    // set indoor and initialize array
    this.setState({ indoor: true, game: [id] });
  } else {
    // filter array as per usual
    const result = game.includes(id)
      ? game.filter(x => x !== id)
      : [...game, id];

    this.setState({ game: result });
  }
};

票数 2
EN

Stack Overflow用户

发布于 2020-03-11 10:22:02

handleCheck中,您的第一个参数不包含您要查找的信息,它们将出现在回调函数的第二个参数中。所以,您需要使用第二个参数。另外,您正在从state而不是this.props中破坏this.props

带有工作解决方案的更新沙箱:https://codesandbox.io/s/keen-gates-b4jsn

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60632723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档