【问题标题】:Calculate in React Form以 React 形式计算
【发布时间】:2021-01-03 18:33:10
【问题描述】:

我正在尝试创建自定义定价表单。买方将能够在其中选择不同的选项。每个选项都有一个相关的价格。选择选项后,表格将自动显示总价。我正在使用 GatsbyJS。

<form>
  <div className="form-group">
    <label>Beaf</label>
    <div class="form-check">
      <input class="form-check-input" type="radio" name="exampleRadios" id="exampleRadios1" value="50 USD" checked />
      <label class="form-check-label" for="exampleRadios1">
        Cheap Beaf
      </label>
    </div>
    <div class="form-check">
      <input class="form-check-input" type="radio" name="exampleRadios" id="exampleRadios2" value="100 USD" />
      <label class="form-check-label" for="exampleRadios2">
        Expensive Beaf
      </label>
    </div>
  </div>
  <div className="form-group">
    <label>Cheese</label>
    <div class="form-check">
      <input class="form-check-input" type="radio" name="exampleRadios" id="exampleRadios1" value="40 USD" checked />
      <label class="form-check-label" for="exampleRadios1">
        Cheap Cheese
      </label>
    </div>
    <div class="form-check">
      <input class="form-check-input" type="radio" name="exampleRadios" id="exampleRadios2" value="80 USD" />
      <label class="form-check-label" for="exampleRadios2">
        Expensive Cheese
      </label>
    </div>
  </div>  <div className="form-group">
    <label>Bread</label>
    <div class="form-check">
      <input class="form-check-input" type="radio" name="exampleRadios" id="exampleRadios1" value="30 USD" checked />
      <label class="form-check-label" for="exampleRadios1">
        Cheap Bread
      </label>
    </div>
    <div class="form-check">
      <input class="form-check-input" type="radio" name="exampleRadios" id="exampleRadios2" value="60 USD" />
      <label class="form-check-label" for="exampleRadios2">
        Expensive Bread
      </label>
    </div>
  </div>
  <label>Total Price</label>
  <input class="form-control" type="text" placeholder="Readonly input here…" readonly />
</form>

【问题讨论】:

  • 您需要将选中的(价格/价值)保存在状态并显示出来。

标签: reactjs forms


【解决方案1】:

我假设您正在使用带有钩子的反应状态。您需要为此使用反应状态并更改 onChange 事件的价格。我刚刚为你做了一个快速原型。

https://codesandbox.io/s/stackoverflow-calculate-in-react-form-dum7k?file=/src/App.tsx

您只需要在组件安装时为 defaultChecked 产品设置价格。可以通过useEffect实现。

【讨论】:

  • 非常感谢 Sodhi 利用您宝贵的时间为我创建了一个原型。您的代码很棒,但我确实需要一起计算价格。示例:便宜的牛肉 + 昂贵的奶酪 + 便宜的面包 = 总价。
  • 更新了答案和上面的链接。请检查:)
  • 再次感谢。看起来你工作了半个多小时。真的很感谢你的努力。但它看起来直到你改变一个选项才开始计算。
  • 不用TS也可以随意使用。主要是了解其背后的逻辑。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-19
  • 2018-07-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多