const [open, setOpen] = useState(false)
const hide = () => {
setOpen(false)
}
const handleEnd = () => {
setOpen(true)
}
const end = async () => {
await postExamAnswer(Number(params.examId), {
isEnd: true,
answer: userAnswer.current.map((item) => ({
questionNumber: item.questionNumber,
answer: item.userAnswer,
})),
})
clearInterval(timer.current)
navigate(${prefix}paperEnd)
localStorage.removeItem(‘examinee-token’)
}
HTML部分:
```html
请问您是否确定提交试卷
// 函数部分
const [Score, setscore] = useState()
const [ExamId, setExamId] = useState()
const [scoreValue, setScoreValue] = useState(null)
const onChange = (value: number | null) => {if (value == null) returnsetscore(value)setScoreValue(value)
}
const Scoresave = () => {setScore(Number(ExamId), Number(Score)).then(() => {message.success('分数设置成功')onCancel()getInfo()})}
const onCancel = () => {setModalOpen(false)setScoreValue(null)// const scoreElement: HTMLElement | null = document.getElementById('scoreInput')!// scoreElement.value = ''}
// HTML部分modalOpen}onOk={Scoresave}onCancel={onCancel}key={ExamId}>0}precision={0}controls={false}value={scoreValue}onChange={onChange}id='scoreInput'/>
3.2 输入但不提交,取消后在进入仍保留上一次输入的值:
const scoreElement: HTMLElement | null = document.getElementById('scoreInput')!
scoreElement.value = ''
{title: '考试分数',dataIndex: 'score',key: 'score',align: 'center',width: '80px',editable: false,// render: (text: string) => {// return text || '--'// },render: (text: string, row: ExamList) => {if (text != null) return text// 输入0也可以显示return ('link'}onClick={() => {setExamId(row.examId)setModalOpen(true)}}>填写分数)},},
// 函数部分const [form] = Form.useForm()const [wordOpen, setWordOpen] = useState(false)// const [nameOpen, setNameOpen] = useState(false)// 完成修改密码const onFinish = async (values: { oldPassword: string; newPassword: string }) => {const data: IPassWord = valuesawait patchPassword(data)logout()}{/* Modal 修改姓名,密码 */}wordOpen}footer={null}onCancel={() => {setWordOpen(false)form.resetFields()}}>form}layout='vertical'initialValues={{ remember: true }}onFinish={onFinish}>[{ required: true, message: '请输入原密码!' }]}>[{ required: true, message: '请输入新密码!' }]}>['newPassword']}// hasFeedbackrules={[{ required: true, message: '请确认新密码!' },({ getFieldValue }) => ({validator(_, value) {if (!value || getFieldValue('newPassword') === value) {return Promise.resolve()}return Promise.reject(new Error('两次输入的密码不匹配!'))},}),]}>20}> 4} offset={8}> 4}>() => {setWordOpen(false)form.resetFields()}}>取消
if(changedValues.oldPassword){setOldPassword(changedValues.oldPassword)
}
但是问题是我输入后再删除,oldPassword也会随之变化到最后一个数值,eg先输入123456再删除,最后oldPassword=1,因为删完1为空不再进这里的if了,
3.2 解决回显:
表单清空就很方便,Form添加form属性;form定义: const [form] = Form.useForm();取消按钮点击时:form.resetFields()重置表单