react / redux新手。尝试构建待办事项应用程序并具有如下容器组件:
import React, { Component } from 'react'
import PropTypes from 'prop-types'
import { connect } from 'react-redux'
import Input from '../components/InputText'
import addTodo from '../actions/addTodoAction'
export class InputText extends Component {
static propTypes = {
prop: PropTypes
}
}
export default connect(null, {addTodo})(Input)
“无状态”组件输入看起来像这样:
import React from 'react'
import PropTypes from 'prop-types'
const InputText = ({addTodo}) => {
return (
<div>
<input type='text'></input>
<button onClick={this.props.addTodo}>add todo</button>
</div>
)
}
//question :define proptype for action?
InputText.propTypes = {
addTodo: PropTypes.func.isRequired
}
export default InputText
这是动作创建者:
const addTodo = (param) => ({
type: 'ADD_TODO',
payload: param.text
})
export default addTodo;
运行应用程序时出现此错误:
TypeError:无法读取未定义的属性'addTodo'
看起来道具没有被传递。我在做什么错?链接到 githubrepo
答案 0 :(得分:1)
您不必使用this.props.addTodo,只需使用<button onClick={addTodo}>add todo</button>
。
您通过破坏道具直接获得了addTodo
。