私はreactjsと一緒にredux-sagaを使用しています。私は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
}
}
まず、 'return bindActionCreators ....'のように 'mapDispatchToProps'にリターンを加えてください。それから、あなたの 'ProgramProfileContainer'では' updateModifiedValue'を 'this.props.updateModifiedValue'として代わりに使用してください。これは、あなたのアクションクリエータが 'dispatch'でラップされ、コンポーネントの小道具にマージされて自動的にストアにディスパッチされるためです – Rowland
2つのもの最初に丸いブレースを追加しました。でも同じエラーが発生する – LowCool