arrays - 如何在 React 状态数组中不包含重复值,如何防止数组中的值重复?
问题描述
我想在 items[0].question 状态中存储 15 个不同的问题
我想确保我不能将重复的值推送到 React 状态的数组中。不过,重复的值仍在数组中。
我试过使用 .includes 但它不起作用。
const [exam, setExam] = useState({
subjectName: "",
questions: [
], notes: [
""
]
})
const [item, setItem] = useState([
{
question: "",
answer: "",
options: []
}
])
const nextQuestion = (e) => {
e.preventDefault()
const que = item[0].question
exam?.questions?.push({ question: que, answer: value, options: [item[0].options[1], item[0].options[2], item[0].options[3], item[0].options[4]] })
}
解决方案
因为您使用的是 setState,所以您需要使用setExam
来更新exam
就像是:
const newQuestion = { question: que, answer: value, options: [item[0].options[1], item[0].options[2], item[0].options[3], item[0].options[4]] }
newExams = {...exam, questions: [...exam.questions, newQuestion ]}
setExam(newExams)
推荐阅读
- dependency-injection - @BindsInstance 上的 @Singleton
- amazon-web-services - 未知动态 url 路径上的 AWS 应用程序负载均衡器
- r - 如何在R中使用应用函数组来计算带有加号分隔符的值的平均值
- asp.net-web-api2 - Web API 一项操作有效,而几乎相同的操作无效?
- typescript - 关于 import * as x from vs import x from 的说明
- spring - 使用 Spring Feign 将 GET 转换为 POST
- wpf - 将画笔定义为从另一个资源获取颜色的资源
- r - 如何正确地将我的函数作为用户输入参数传递?
- jenkins - 需要来自 Jenkins 的正确外观的电子邮件通知:包括自上次构建以来所做的 SVN 更改以及构建期间的错误(如果有)
- vbscript - VBS 快速循环线路