I попытался использовать перехватчики реакции (useReducer). у меня ошибка
TypeError: Object(...) is not a function
Здесь я прикрепил свой код и также приложил снимок экрана с ошибкой.
import React, { useReducer } from 'react';
function appReducer(state, action){
switch(action.type){
case 'add':
return [
...state,
{
id:Date.now(),
text:'',
completed:false
}
]
break;
default:
break;
}
}
export default function myCom(){
const [state, dispatch] = useReducer(appReducer, []);
return (
<div className = "App">
<h5>React ToDo</h5>
<button onClick = {() => dispatch({type:'add'})}>New Todo</button>
{
state.map(item =>(
<div key = {item.id}>{item.id}</div>
))
}
</div>
);
}]
Как исправить эту ошибку.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Ошибка не связана с useReducer, но вы неправильно использовали экспорт по умолчанию:
export default function myCom(){
Если вы хотите экспортировать именованную функцию, вы можете сделать:
// function definition
function myComp() {}
// then export
export default { myComp }
Тогда вы можете использовать как:
import Something from '...'
Something.myComp()
Но если вы хотите экспортировать только одну функцию, я сделаю это так:
export const myComp = () => {}
Теперь вы можете импортировать:
import { myComp } from '...'
myComp()
Я пробовал, чтобы вы были упомянуты в ответе последним. Тем не менее, у меня такая же ошибка. вы можете найти код здесь jsfiddle.net/wv1ae28k
Ах, моя беда. Написал еще кое-что. Обновлено.
Как у вас рендеринг myCom