reactjs - 映射时如何将每个单选按钮与对象相关联
问题描述
我正在尝试制作一个对随机事物有疑问的应用程序,每个事物都有不同的类别。用户只需要在“是”或“否”之间进行选择,非常简单。
我有一组对象,每个对象都有类别和问题,
const questionsArray = [
{
category: 'sports',
question: 'Do you practice soccer?'
},
{
category: 'sports',
question: 'Do you practice baseball?'
},
{
category: 'routine',
question: 'Do you like to watch movies?'
},
{
category: 'routine',
question: 'Do you like to play video games?'
},
{
category: 'food',
question: 'Do you like pasta?'
},
{
category: 'food',
question: 'Do you like cake?'
},
]
在这里,我循环遍历这个数组并向用户展示问题,
{questionsArray.map((data, i) => (
<>
<Text style={styles.text}>
{i + 1} - {data.question}
</Text>
<Text style={{ color: "#fff", fontSize: 18, marginLeft: 10 }}>
{data.atividades}
</Text>
<View style={styles.radioButtonContainer}>
<RadioButton
value="yes"
color="#fff"
uncheckedColor="#fff"
status={checked === "yes" ? "checked" : "unchecked"}
onPress={e => setChecked("yes")}
/>
<Text style={styles.radioText}>Yes </Text>
</View>
<View style={styles.radioButtonContainer}>
<RadioButton
value="no"
color="#fff"
uncheckedColor="#fff"
status={checked === "no" ? "checked" : "unchecked"}
onPress={() => setChecked("no")}
/>
<Text style={styles.radioText}>No </Text>
</View>
</>
))}
问题是我不知道如何将每个单选按钮与问题联系起来。我将此库用于单选按钮https://callstack.github.io/react-native-paper/radio-button.html
当前的行为是当我更改一个单选按钮时,它们都发生了变化,这是有道理的,因为它们使用的是相同的状态。
最后,当用户按下提交答案按钮时,我想要一个像这样的 JSON 作为输出,它显示每个类别有多少“是”答案:
{
"result": {
"sports": 1,
"routine": 1,
"food": 2
}
}
以下是完整代码:https ://snack.expo.io/UhoiXh4ri
解决方案
我认为,如果您根据其name
属性对单选按钮进行分组,它应该可以工作。
添加name={data.category}
到两个单选按钮
推荐阅读
- mqtt - MQTT PAHO - 用于确认消息传递成功的 MessageId
- .net - 没有为泛型类调用 ICorProfilerCallback::ClassUnloadStarted,即使该类已卸载
- apache - XSL 在 PDF 中呈现 PDF
- azure - 带有 Haproxy 的 Azure 负载均衡器导致 504 超时
- php - 在 PHP 中覆盖数组值,将其放在错误的位置
- java - 数组列表
indexof 替代方案,不仅提供第一个位置,还提供所有位置 - sql - 存储过程中的 Microsoft SQL Server 批处理间歇性提交
- oracle - 在 group by 上查询 oracle
- python - 如果字符存在,如何匹配字符后出现的字符串,否则不应匹配任何内容
- php - 从 WP_Meta_query 返回帖子 ID