我想将我的firestore值存储为布尔值,但它被存储为字符串



我有一个表单在reactjs当我提交它在firestore数据库中存储值。我有一个状态字段,用户可以选择真或假,我的问题是这个选项作为一个字符串提交,我想要它得到它作为一个布尔值提交。谁能告诉我该怎么做?

代码:

const [masterMenu, setMasterMenu] = useState([])
const [form, setForm] = useState({
status: "",
})
const masterMenuCollectionRef = collection(db, "masterMenu")
setForm({
status: "",
}).then(() => { 

})}
}
<div className='outer-container'>
<h1 className='text-3xl font-bold py-2'>MASTER MENU</h1>
<label style={{marginLeft: "0.3cm"}}><b>Status</b></label>
<br />
<select style={{marginLeft: "0.3cm", marginBottom: "20px", borderBottom: "2px solid 
#006400", paddingBottom: "10px", width: "38cm"}}
onChange={e => setForm({ ...form, status: (e.target.valueAsBoolean) })}>
<option value="">Select Status</option>
<option value="True">True</option>
<option value="False">False</option>
</select>

option不接受布尔类型的数据,但有很多方法将字符串转换为布尔类型,但最简单的方法是赋值True1andFalseas0. 参见下面的示例片段:

$("#mySelect").change(function() {
console.log("Selected option is " + $('#mySelect').val());
console.log(Boolean(parseInt($('#mySelect').val())))
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="mySelect">
<option disabled selected>Select Status</option>
<option value=1>True</option>
<option value=0>False</option>
</select>

在上面的示例中,我通过使用parseInt将选项值转换为int,然后将其转换为布尔类型。你也可以将这个逻辑应用到你的代码中,这取决于你将如何实现它。

您可以使用JSON.parse将其从字符串转换为布尔类型。

console.log(typeof JSON.parse("false"))
console.log(typeof JSON.parse("true"))

相关内容

  • 没有找到相关文章

最新更新