reactjs - 如何获取单选按钮值并将其上传到 Firebase?
问题描述
在这段代码中,我想上传单选按钮值并将其存储在 firebase 数据库中。我想用最简单的方法来解决这个问题。我看到其他代码将使用构造函数,但我不知道是否可以使用更简单的方法来解决它。我怎样才能做到这一点 ?
import React, { useState } from "react";
import ReactPlayer from "react-player";
import Array from "../Array";
import firebase from "firebase";
export default () => {
const [selected, setSelected] = useState("");
return (
<div>
<div className="video">
<ReactPlayer url={Array[0]} playing />
</div>
<label>Guess whether this video is fake or real ?</label> <br />
<label>
<input
type="radio"
name="answer"
value="real"
onChange={e => setSelected(e.target.value)}
/>
real
</label>
<label>
<input
type="radio"
name="answer"
value="fake"
onChange={e => setSelected(e.target.value)}
/>
fake
</label>
</div>
);
};
解决方案
我会这样做:
import React from "react";
....
export default () => {
const [state, setState] = React.useState({});
const handleInputChange = e => {
const { name, value } = e.target;
console.log(name, value);
setState(state => {
const newState = { ...state, [name]: value }
//post newState to firebase
return newState
});
};
return (
<div>
<div className="video">
<ReactPlayer url={Array[0]} playing />
</div>
<div>{JSON.stringify(state)}</div>
<label>Guess whether this video is fake or real ?</label> <br />
<label>
<input
type="radio"
name="answer1"
value="real"
onChange={handleInputChange}
/>
real
</label>
<label>
<input
type="radio"
name="answer2"
value="fake"
onChange={handleInputChange}
/>
fake
</label>
</div>
);
};
推荐阅读
- postgresql - 需要多个客户的结果以及城市名称
- vue.js - 图像未在 vue 和 vue bootstrap 中显示
- javascript - 访问成员时对象数组返回未定义
- python - 根据另一行的值更改熊猫数据框中的一行
- selenoid - 有什么办法可以将 selenoid-ui 的默认端口从 8080 更改为其他端口
- saxon - 警告:无法识别的元素 xsl:variable online running saxon 但不在 Oxygen 中,为什么?
- arrays - 返回具有对象中某些属性的数组对象。打字稿
- c# - json反序列化中的日期时间字段
- android - 单击 Mapview 中的特定标记后,如何从 Firestore 数据库中获取有关活动的特定数据?
- testing - 导出脚本