angular - 如何在选择器中获得不同的状态或如何在选择器中使用选择器
问题描述
我有以下选择器
const getLinkFeatureState = createFeatureSelector<ILinkReducer>('link');
export const getLinkIsLinkDtoPricesDeliveryTimesSome = (index: number) => createSelector(
getLinkFeatureState,
state => state.linkDto.prices[index].deliveryTimes.some(d => d.iso == state.???)
)
现在我想使用我的另一个减速器的状态
export interface ISelectedLanguageReducer {
language: ILanguage;
isLanguageSuccess: boolean;
}
const selectedLanguageInitial: ISelectedLanguageReducer = {
language: {
country: '',
value: '',
selected: false
},
isLanguageSuccess: false
}
使用以下选择器
const getSelectedLanguageFeatureState = createFeatureSelector<ISelectedLanguageReducer>('selectedLanguage');
export const getSelectedLanguageLanguage = createSelector(
getSelectedLanguageFeatureState,
state => state.language
);
有什么方法可以在“链接”选择器中获取所选语言或在选择器中使用选择器?
解决方案
您可以通过直接在createSelector
函数中添加另一个选择器来实现这一点,如下所示:
export const getLinkIsLinkDtoPricesDeliveryTimesSome = (index: number) =>
createSelector(getLinkFeatureState, getSelectedLanguageLanguage, (state, selectedLang) =>
// >>> you can use the selectedLang here
state.linkDto.prices[index].deliveryTimes.some((d) => d.iso == state.???)
);
确保在使用之前在模块中初始化另一个状态。
createSelector
您可以在Using selectors for multiple pieces of state中检查此重载。
推荐阅读
- java - 打印源文件的当前内容(在 Android 上使用 Java 或 Kotlin)
- android - 上传/下载特定文件到/从网络服务器到手机android工作室
- c# - 从 C# 中的列表更新对象
- javascript - 在 JS 中为 insertAdjacentHTML 设置动画
- django - django 过滤器视图中 IntegerRangeField 的 Meta.filter_overrides
- spring-boot - 当响应标头内容类型设置为 json 时,Spring Boot 控制器返回 xml
- php - Laravel - NoSQL 无限字段更新
- c# - 需要第三方实现的C#接口
- python - OpenCV参数表中的“[”是什么意思
- react-native - 我正在尝试制作一个能够打开 Spotify 并播放歌曲的反应原生应用程序