-1

在此处输入图像描述我尝试使用反应钩子(useReducer)。我有错误

TypeError: Object(...) 不是函数

在这里,我附上了我的代码并附上了错误截图。

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>
    );
}]

如何修复此错误。

4

1 回答 1

1

该错误不是 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()
于 2018-11-21T04:56:11.380 回答