Почему действие redux onclick в приложении reactjs не работает? - PullRequest
0 голосов
/ 27 мая 2020

Вот упрощенный код:

-action. js

export const removeVisitedUser = id => async dispatch => {
        try  {
        const visited = JSON.parse(localStorage.getItem(`visited_`)) || [];
        const filtered = visited.filter(i => i !== id);
        debugger
        dispatch({type: REMOVE_VISITED_USER, payload: {filtered}})
    } catch (err) {
        dispatch({ type: ERROR_REMOVE_VISITED_USER }, err)
    }

}

export const errorRemoveVisitedUser = () => ({
    type: ERROR_REMOVE_VISITED_USER
});

-reducer. js

import { REMOVE_VISITED_USER } from "./action";


const initialState = {
    visited: JSON.parse(localStorage.getItem(`visited_`)) || [],
};

export default (state = initialState, action) => {
    const { visited } = state;
    const { type, payload } = action;

    switch (type) {
        case REMOVE_VISITED_USER: {
            return { ...state, visited: payload.filtered};

};

-reactComponent. js

const reactComponent= ({
    visited: { visited},
    removeVisitedUser,
}) => {
return (
        <div className="visited-list">
            <div className="visited-list__items">
                <MyLogo />
                {visited.map((i, ind) => (
                    <div
                        key={ind}
                        onClick={() => removeVisitedUser(i._id)}
                        className={`visited-list__item ${active(ind)}`}
                    >

                        {!i.img
                            ? <i className="fa fa-user-circle" />
                            : <div style={{ backgroundImage: `url(${avatarGetter(i.img)})` }} />}
                    </div>
                ))}
            </div>
        </div>
    );
};

Вы можете увидеть отладчик при удалении действия, так как я знаю, что он должен запускаться, когда я нажимаю на любой посещенный пользовательский div, но этого не произошло, поэтому действие тоже не сработало.

Я трачу много времени, чтобы понять, как это должно работать правильно, но так и не понял.

Спасибо.

1 Ответ

0 голосов
/ 28 мая 2020

Я не вижу, чтобы вы использовали mapDispatchToProps где-нибудь. вы можете предоставить этот код? или, если у вас его нет, вам нужно добавить его, чтобы react знал, что использовать его как опору

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...