簡體   English   中英

如何解決未捕獲的錯誤 createSelector 方法?

[英]How to resolve uncaught error createSelector method?

我在我的 Angular 應用程序中使用選擇器,但調用選擇器時出現未捕獲的錯誤。 盡管我已將所需的選擇器函數作為參數提供給createSelector 根據此處的重新選擇文檔 - https://github.com/reduxjs/reselect

Uncaught Error: Selector creators expect all input-selectors to be functions, 
instead received the following types: [object]

我確實在這里發現了一個類似的問題,這表明將選擇器從箭頭 function 更改為普通的 function 聲明將解決它。 為了解決 function 聲明的任何提升問題,但這並不能解決未捕獲的錯誤 - https://github.com/reduxjs/reselect/issues/169

通過傳入store.getState()作為參數來調用選擇器:

let state = getBookTitles(this.store.getState());

問題:

調用重新選擇的createSelector時如何解決未捕獲的錯誤?

這是我的 Selectors.js 文件,其中包含應用程序 state 選擇器:

// Selectors.js

import { createSelector } from 'reselect';

function selectBooks(state: any) {
  return state ? state.books: [];
}
function selectBookTitles(books: any) {
  return books ? books.titles: [];
}

// bookTitle selector
export let getBookTitles = createSelector(
  selectBooks,
  selectBookTitles,
);

原來錯誤來自selector.js文件中錯誤定義的選擇器。

錯誤:

Uncaught Error: Selector creators expect all input-selectors to be functions, 
instead received the following types: [object]

語法錯誤:

export const selectConfig = createSelector(
  [initialSettingsState.config],
  'config',
);

正確的語法:

const configSelector = state => {
  return state ? state.config: [];
};

export const getConfig = createSelector(
  configSelector,
  config=> {
    return config;
  },
);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM