TypeError: Failed to execute 'fetch' on 'Window': Invalid name
TypeError: Failed to execute 'fetch' on 'Window': Invalid name
我正在尝试使用 useContext api 更新我的项目中的待办事项列表,如果我单击输入复选框,我想删除已完成但每当我单击它时都会收到此错误类型错误:无法执行 'fetch' on 'Window': _callee$ 的名称无效,我检查了文件名以查看是否遗漏了某些内容但正确无误。请有人帮我看看这里做错了什么
import { createContext, useState } from "react"
const TodosContext = createContext()
const TodosProvider = ({children}) => {
const [todos, setTodos] = useState([])
const updatedTodos = async (updateTodo) => {
try{
const res = await fetch("/api/updateTodo", {
method: "PUT",
body: JSON.stringify(updateTodo),
headers: {"content-[type]": "application/json"}
})
await res.json()
setTodos((prevTodo) => {
const existingTodos = [...prevTodo]
const existingTodo = existingTodos.find((todo) => todo.id === updateTodo.id)
existingTodo.fields === updateTodo.fields
return existingTodos
})
} catch(err){
console.error(err)
}
}
return (
<TodosContext.Provider value={{
addTodos,
todos,
setTodos,
updatedTodos
}}
>
{children}
</TodosContext.Provider>
)
}
export {TodosContext, TodosProvider}
import {TodosContext} from '../context/todoContext'
import { useContext } from "react"
export default function Todo ({todo}){
const {updatedTodos} = useContext(TodosContext)
const handleToggle = () => {
const updateFields = {
...todo.fields,
completed: !todo.fields.completed
}
const updateTodo = {id: todo.id, fields: updateFields}
updatedTodos(updateTodo)
}
return (
<li className="flex items-center py-4 px-4 my-2 bg-white shadow-xl">
<input type="checkbox" name="completed" id="completed" className="form-checkbox cursor-pointer mr-2 h-5 w-5" checked={todo.fields.completed}
onChange={handleToggle}
/>
<p className={`flex-1 text-gray-800 font-semibold ${todo.fields.completed? "line-through" : ""}`}>{todo.fields.description}</p>
</li>
)
}
我认为你的 header 无效 headers: {"content-[type]": "application/json"} 应该是 {"Content-Type": “application/json”},这是导致错误的原因
我正在尝试使用 useContext api 更新我的项目中的待办事项列表,如果我单击输入复选框,我想删除已完成但每当我单击它时都会收到此错误类型错误:无法执行 'fetch' on 'Window': _callee$ 的名称无效,我检查了文件名以查看是否遗漏了某些内容但正确无误。请有人帮我看看这里做错了什么
import { createContext, useState } from "react"
const TodosContext = createContext()
const TodosProvider = ({children}) => {
const [todos, setTodos] = useState([])
const updatedTodos = async (updateTodo) => {
try{
const res = await fetch("/api/updateTodo", {
method: "PUT",
body: JSON.stringify(updateTodo),
headers: {"content-[type]": "application/json"}
})
await res.json()
setTodos((prevTodo) => {
const existingTodos = [...prevTodo]
const existingTodo = existingTodos.find((todo) => todo.id === updateTodo.id)
existingTodo.fields === updateTodo.fields
return existingTodos
})
} catch(err){
console.error(err)
}
}
return (
<TodosContext.Provider value={{
addTodos,
todos,
setTodos,
updatedTodos
}}
>
{children}
</TodosContext.Provider>
)
}
export {TodosContext, TodosProvider}
import {TodosContext} from '../context/todoContext'
import { useContext } from "react"
export default function Todo ({todo}){
const {updatedTodos} = useContext(TodosContext)
const handleToggle = () => {
const updateFields = {
...todo.fields,
completed: !todo.fields.completed
}
const updateTodo = {id: todo.id, fields: updateFields}
updatedTodos(updateTodo)
}
return (
<li className="flex items-center py-4 px-4 my-2 bg-white shadow-xl">
<input type="checkbox" name="completed" id="completed" className="form-checkbox cursor-pointer mr-2 h-5 w-5" checked={todo.fields.completed}
onChange={handleToggle}
/>
<p className={`flex-1 text-gray-800 font-semibold ${todo.fields.completed? "line-through" : ""}`}>{todo.fields.description}</p>
</li>
)
}
我认为你的 header 无效 headers: {"content-[type]": "application/json"} 应该是 {"Content-Type": “application/json”},这是导致错误的原因