我正在使用redux-saga与reactjs一起。我正在使用mapDispatchToProps触发onClick更改与值,但我越来越错误说派遣没有定义任何人请让我知道如何解决这个萨格方式?未捕获的错误:调度不是函数
import { connect } from 'react-redux';
import { updateModifiedValue } from "../actions/programActions";
import { bindActionCreators } from 'redux';
export class ProgramProfileContainer extends React.Component {
render() {
return (
<div>
<ProgramVolumeComponent
updateModifiedGrowth = {(value) => updateModifiedValue(value,this.props.match.params.program_id)}
/>
</div>
)
}
}
const mapStateToProps = (state) => {
console.log("update state", state)
return {
programProfileData: state.programDetailReducer.programDetails,
}
}
const mapDispatchToProps= (dispatch) => (
bindActionCreators({updateModifiedValue},dispatch)
)
export default connect(
mapStateToProps,
mapDispatchToProps)(ProgramProfileContainer)
这是我的行动
export function updateModifiedValue(Value,Id){
console.log("mval",Value)
console.log("id",Id)
return {
type:types.MODIFIED_GROWTH,
growthValue
}
}
这里是我的索引传奇
export default function* startForman() {
console.log("index saga")
yield fork(watcher);
}
观察家
export default function* watcher(){
yield takeLatest(types.LISTS,myCallSaaga)
}
和我calll SAAGA
export default function* myCallSaaga({Value,Id}){
const array=[Value,Id]
try {
const Data = yield call(growthdetail,...array)
yield [
put({ type: types.MODIFIED, Detail: Data })
]
} catch (error) {
yield put({
type: 'FETCH_ERROR',
error
});
}
}
和我减速
export default function(state=[],action){
switch(action.type){
case types.PRO_LIST:
return [...state,action.List]
case types.MODIFIED:
return {...state,growth:4}
default:
return state
}
}
首先,像下面这样为你的'mapDispatchToProps'添加一个返回值:'return bindActionCreators ....'。然后在你的'ProgramProfileContainer'中,改为使用'updateModifiedValue'作为'this.props.updateModifiedValue'。这是因为你的动作创造者被包裹着'dispatch',并且已经被合并到你的组件的道具中,允许你自动发送到商店 – Rowland
2东西我添加了圆括号,所以我不需要返回和雅第二件事我已经更新但仍然得到相同的错误 – LowCool