ReactでReduxSagaを使用する場合GetThis Error .. Uncaught TypeError:getPostsは関数ではありません

購入

ReactでReduxSagasを使用する方法を学ぼうとしています。簡単な例をまとめますが、私にはうまくいきません。

App.jsファイルのコード:

const sagaMiddleware = createSagaMiddleWare();

const store = createStore(
  reducers,
  applyMiddleware(sagaMiddleware)
)

sagaMiddleware.run(rootSaga);

ReactDOM.render(<Provider store={store}><App /></Provider>, document.getElementById('root'));

アクションクリエーター:

 export const getPosts = () => {
        return  {
           type: 'GET_POSTS'
        }
     };

レデューサー:

const combineReducers = (state= {}, action) => {
     switch (action.type) {
       case 'GET_POSTS':
         return { ...state, loading: true};
       default:
         return state;
        }
      }

   export default combineReducers;

アクションを呼び出す必要があるマイボタンコンポーネントonClick

const ButtonContainer = (getPosts) => (
     <button onClick={() => getPosts()}>Get Posts</button>
)

const mapDispatchToProps = {
  getPosts: getPosts
}

export default connect(null, mapDispatchToProps)(ButtonContainer);

問題は、ページの読み込み時にこのエラーが発生することです。

Uncaught TypeError: getPosts is not a function....

エラーが何を言っているかは理にかなっています。関数ではなくオブジェクトを取得していますが、これを機能させるために何をする必要があるのか​​よくわかりません。

ありがとうございました!

ベン・スミス

現在使用しているコードは、実際にはgetPostsアクションをレデューサーにディスパッチしていません。

mapDispatchToPropsを次のように変更します。

const mapDispatchToProps = dispatch => {
  getPosts: bindActionCreators(getPosts, dispatch)
}

また、次のものが必要です。

import { bindActionCreators, Dispatch } from "redux"

また、ButtonContainerを次のように変更します。

const ButtonContainer = props => (
     <button onClick={() => props.getPosts()}>Get Posts</button>
)

ディスパッチの詳細については、この優れたドキュメントを参照してください。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

jquery:Uncaught TypeError:$(...)。errorは関数ではありません

分類Dev

Uncaught Error:Uncaught(in promise):TypeError:this.xxxService.getSomething(...)。toPromiseは関数ではありません

分類Dev

Highchart uncaught error-Uncaught TypeError:$(...)。highchartsは関数ではありません

分類Dev

Uncaught TypeError:関数は関数ではありません

分類Dev

Uncaught Type Error:Undefinedは関数JavaScriptモジュールではありません

分類Dev

React Uncaught TypeError:this.setStateは関数ではありません

分類Dev

React Uncaught TypeError:this.setStateは関数ではありません

分類Dev

REACT Uncaught TypeError.thenは関数ではありません

分類Dev

React Uncaught TypeError:_this2.setStateは関数ではありません

分類Dev

React Uncaught TypeError: this.setState は関数ではありません

分類Dev

Uncaught TypeError:Object.valuesは関数JavaScriptではありません

分類Dev

Uncaught TypeError:data.pushは関数ではありません

分類Dev

Slick Carousel Uncaught TypeError:$(...)。slickは関数ではありません

分類Dev

Highcharts:Uncaught TypeError:$(...)。highchartsは関数ではありません

分類Dev

BootStrap:Uncaught TypeError:$(...)。datetimepickerは関数ではありません

分類Dev

Uncaught TypeError:rand.sliceは関数ではありません

分類Dev

Uncaught TypeError:$ .postは関数ではありません

分類Dev

Uncaught TypeError:(中間値)(...)は関数ではありません

分類Dev

Uncaught TypeError:$ .ajax(...)。successは関数ではありません

分類Dev

Uncaught TypeError:angular.lowercaseは関数ではありません

分類Dev

Uncaught TypeError:props.setDetailsShownは関数ではありません(useState)

分類Dev

Uncaught TypeError:a.customFilterはngAnimateの関数ではありません

分類Dev

Uncaught TypeError:$(...)。waterwheelCarouselは関数ではありません

分類Dev

Uncaught TypeError:.unshiftは関数ではありません

分類Dev

Uncaught TypeError:.slideToggleは関数ではありません

分類Dev

Uncaught TypeError:$(...)。stellarは関数ではありません

分類Dev

Uncaught TypeError:matchExpr [type] .execは関数ではありません

分類Dev

Uncaught TypeError:a.indexOfは関数ではありません[PRELOADER]

分類Dev

jQuery:Uncaught TypeError:$(...)。clickは関数ではありません

Related 関連記事

  1. 1

    jquery:Uncaught TypeError:$(...)。errorは関数ではありません

  2. 2

    Uncaught Error:Uncaught(in promise):TypeError:this.xxxService.getSomething(...)。toPromiseは関数ではありません

  3. 3

    Highchart uncaught error-Uncaught TypeError:$(...)。highchartsは関数ではありません

  4. 4

    Uncaught TypeError:関数は関数ではありません

  5. 5

    Uncaught Type Error:Undefinedは関数JavaScriptモジュールではありません

  6. 6

    React Uncaught TypeError:this.setStateは関数ではありません

  7. 7

    React Uncaught TypeError:this.setStateは関数ではありません

  8. 8

    REACT Uncaught TypeError.thenは関数ではありません

  9. 9

    React Uncaught TypeError:_this2.setStateは関数ではありません

  10. 10

    React Uncaught TypeError: this.setState は関数ではありません

  11. 11

    Uncaught TypeError:Object.valuesは関数JavaScriptではありません

  12. 12

    Uncaught TypeError:data.pushは関数ではありません

  13. 13

    Slick Carousel Uncaught TypeError:$(...)。slickは関数ではありません

  14. 14

    Highcharts:Uncaught TypeError:$(...)。highchartsは関数ではありません

  15. 15

    BootStrap:Uncaught TypeError:$(...)。datetimepickerは関数ではありません

  16. 16

    Uncaught TypeError:rand.sliceは関数ではありません

  17. 17

    Uncaught TypeError:$ .postは関数ではありません

  18. 18

    Uncaught TypeError:(中間値)(...)は関数ではありません

  19. 19

    Uncaught TypeError:$ .ajax(...)。successは関数ではありません

  20. 20

    Uncaught TypeError:angular.lowercaseは関数ではありません

  21. 21

    Uncaught TypeError:props.setDetailsShownは関数ではありません(useState)

  22. 22

    Uncaught TypeError:a.customFilterはngAnimateの関数ではありません

  23. 23

    Uncaught TypeError:$(...)。waterwheelCarouselは関数ではありません

  24. 24

    Uncaught TypeError:.unshiftは関数ではありません

  25. 25

    Uncaught TypeError:.slideToggleは関数ではありません

  26. 26

    Uncaught TypeError:$(...)。stellarは関数ではありません

  27. 27

    Uncaught TypeError:matchExpr [type] .execは関数ではありません

  28. 28

    Uncaught TypeError:a.indexOfは関数ではありません[PRELOADER]

  29. 29

    jQuery:Uncaught TypeError:$(...)。clickは関数ではありません

ホットタグ

アーカイブ