Redux报错

import React from 'react'
import ReactDOM from 'react-dom'
import { createStore } from 'redux'

const reducer = (state = 0, action) => {
  switch (action.type) {
    case 'INCREMENT': return state + 1;
    case 'DECREMENT': return state - 1;
    default: return state;
  }
};

const store = createStore(reducer)
const rootEl = document.getElementById('root')

const Counter = ({ value }) => (
    <div>
      <h1>{value}</h1>
      <button onClick={onIncrement}>+</button>
      <button onClick={onDecrement}>-</button>
  </div>
);

const render = () => ReactDOM.render(
  <Counter
    value={store.getState()} 
    onIncrement={() => store.dispatch({ type: 'INCREMENT' })}
    onDecrement={() => store.dispatch({ type: 'DECREMENT' })}
  />,
  rootEl
)

render()
store.subscribe(render)

报错信息为:Uncaught ReferenceError: onIncrement is not defined
阅读 2.5k
1 个回答

Counter函数组件在传参时,少了两个props属性(解构语法),像下面这样改一下就可以了:

const Counter = ({ value, onIncrement, onDecrement }) => (
    <div>
      <h1>{value}</h1>
      <button onClick={onIncrement}>+</button>
      <button onClick={onDecrement}>-</button>
  </div>
);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题