【发布时间】:2021-02-21 19:40:46
【问题描述】:
我想(通过与表单交互)更新:
- 对象的状态(表单的新值)
- 获取数据以通过 (Django) REST 将其发送到数据库
这是表格:
<form className="form1">
<h2>Select your theme</h2>
<select name="theme" onChange={e => submit(e)} value={theme}>
<option value="White">White</option>
<option value="Dark">Dark</option>
<CSRFToken/>
</select>
</form>
事件:
const [theme, setTheme] = useState(results.theme)
// function submit(e) {
const submit = e => {
e.preventDefault()
let out = e.target.value
setTheme(out)
fetch("/api-out/5_settings", {
credentials: 'include',
method: 'PATCH',
mode: 'same-origin',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
'X-CSRFToken': csrftoken
},
body: JSON.stringify({
theme
}),
}).then((response) => {
console.log(out)
console.log(theme)
console.log(response)
return response
})
}
我的代码可以工作,但是当我在表单中切换选项(从深色变为白色)时,状态会发生变化,但数据不会发送到 API,因为主题未定义。再次切换后就可以使用了。
我看到一些答案,例如:
setTheme({...theme, out})
但我不明白,也不确定它是否适合我的问题,以及它是否是最近的解决方案。
非常感谢:)
【问题讨论】:
标签: javascript html reactjs react-hooks