首页 > 解决方案 > 传递的 id 未定义,错误 400(错误请求)

问题描述

我想在回答完谜题后把它去掉,这样登录的用户就不能不断地回答同一个谜题,问题是当它通过id时,这些id是未定义的。我不知道我在哪里犯了错误,这是我的一段代码。他在控制台收到的错误 Error: DELETE http://api / Remove / undefined 400 (Bad Request)

state={
qBank:[{id:1,question:'dd',answers:['a','b','c','d'],correct:'a'}]
}

使成为:

 this.state.qBank.map(
                                ({ question, answers, correct, id }) => (
                                    <QuestionBox key={id} id={id} question={question} options={answers} selected={answer => this.computeAnswer(answer, correct)} />
                                )
                            )}

问题框:

const QuestionBox = ({ question, options, selected, key, id }) => {
    const [answer, setAnswer] = useState(options);
    const [alreadyAnswered, setAlreadyAnswered] = useState(false);
    return (
        <div className="questionBox">
            <div className="question">{question}</div>
            {(answer || []).map((text, index) => (
                <button disabled={alreadyAnswered} key={index} className="answerBtn" onClick={(id) => {
                    if (!alreadyAnswered) {
                        setAnswer([text]);
                        selected(text);
                        setAlreadyAnswered(true);
                        fetch("http:/api/Remove/" + id, {
                            method: 'DELETE',
                            headers: {
                                "Content-Type": "application/json",
                                "Authorization": `bearer ${sessionStorage.getItem("access_token")}`
                            },
                        }).then(() => {
                        }).catch(err => {
                            console.error(err)
                        })
                    }
                }}>{text}</button>
            ))}
        </div>
    )
}

标签: javascriptreactjs

解决方案


推荐阅读