import {FC, useEffect, useState} from "react"; import {Button, Checkbox, CheckboxGroup, Radio, RadioGroup, Text, View} from "@tarojs/components"; import './topic.scss' interface Props { data: Multi onAnswer: (isAnswer: boolean) => void onUpAndDown?: (index: number) => void index: number validate: boolean frequency?: number end: boolean } const Multi: FC = ({data, onAnswer, onUpAndDown, index, validate, frequency, end}) => { const [rightAnswer, setRightAnswer] = useState([]) //答案 const rightKey = data?.right_answer?.split(',') || [] // 正确答案数组 const [error, setError] = useState(false) const answers = [ {value: "A", title: data.answerA}, {value: "B", title: data.answerB}, {value: "C", title: data.answerC}, {value: "D", title: data.answerD}, ] function onChange(e) { const value = e.detail.value if (data.type) { setRightAnswer(value) } else { setRightAnswer([value]) } } useEffect(() => { if (validate) { const isAnswer = rightKey.toString() === rightAnswer.toString() onAnswer(isAnswer) setError(!isAnswer) } }, [validate]) return ( {data.type ? "多选题" : '单选题'} {data.question} {data.type ? {answers.map(d => {d.title} )} : {answers.map(d => {d.title} )} } {onUpAndDown && {index > 0 && } {!end && } } {error && frequency == 0 && 正确答案:{data.right_answer} 题目解析 {data.analysis} } ) } export default Multi