Я пытаюсь получить все сообщения в соответствии с userId. Я не уверен, как заставить работать logi c, где его можно будет восстановить во всем приложении.
Я хочу иметь возможность вызывать селектор getUserPosts
и иметь возможность повторять его для пользователя страница профиля, как мне это сделать?
это то, что у меня есть
селекторы
export const getPosts = () => // this gets all posts
createSelector(
postSelector,
(state) => state.posts,
);
export const getUserPosts = () => // how i do i get all posts based on user id i pass state here
createSelector(
postSelector,
(state) => state.posts.filter((user) => user.userId === state.id)
)
контейнер
import { connect } from "react-redux";
import { createStructuredSelector } from "reselect";
import Profile from "./../components/Profile/Profile"
import { getUserPosts } from "./../selectors/selectors";
const mapStateToProps = createStructuredSelector({
userPosts: getUserPosts()
});
export default connect(
mapStateToProps,
null,
)(Profile);
редуктор
import produce from "immer";
import * as types from "../actionTypes/postActionTypes";
import { validation } from '../utils';
export interface postState {
posts: any[];
postPage: any;
error: any;
titleError: any;
bodyError: any;
title: string
postContent: string
}
const initialState: postState = {
posts: [],
postPage: {},
titleError: null,
bodyError: null,
title: "",
postContent: "",
error: null
};
const postReducer = (state = initialState, action: any): postState =>
produce(state, (draft) => {
switch (action.type) {
case types.GET_POSTS_SUCCESS:
draft.posts = action.payload;
return;
}
});
export default postReducer;