В хедере есть кнопка при нажатии в стор записывается новый список . Но мувлист не реагирует на измения этого списка в стор не перерендерить

код редюсера и стор

        const initialState = {
         movieList: []
        };
     export const reducer = (state=initialState, action) => {
         switch (action.type) {
             case 'GET_MOVIES':
                 console.log(action.payload);
                 return {...state, movieList: action.payload};

             case 'BUTTON':
        console.log(action.payload);
        return {...state, movieList: action.payload};
             default:
        return state;

         }
     }

     export const store = createStore(reducer);

код хедера

         export const NewHeader = (props) => {
         const [{movieList} = props, dispatch] = useReducer(reducer, {
    movieList: [],
         })

         const getFromButton = async () => {
             try {
        const requestMovies = await fetch(https://api.themoviedb.org/3/discover/movie?                                                  
        api_key=${apiKey}&language=en-US&sort_by=popularity.
      desc&include_adult=false&include_video=false&page=2);
        const jsonMovies = await requestMovies.json();
        const {results} = jsonMovies;
        console.log(results);

        dispatch({type: "BUTTON", payload: results});

    } catch (e) {
        console.log(e);
    }
       }
       useEffect(() => {
    getFromButton();
       }, []);

       return (
    <div className="header">
        <img src={Logo} className="header-logo" alt="logo"/>
        <div className="header-menu">{
            menu.map(value => {
                return (
                    <div className="header-menu" key={value.url}>
                        <NavLink className="header-menu-link" to={value.url}>{value.name} </NavLink>
                    </div>
                )
            })
        }
        </div>
        {/*<div className="header-menu">*/}
        {/*    <input type="text" onChange={getMovieName}/>*/}
        {/*    <button onClick={searchMovie(movie)}>Пошук</button>*/}
        {/*</div>*/}
        <div className="header-menu">
            <button onClick={getFromButton}>click</button>
            <span>Вхід</span>
            <span>/</span>
            <span>Регістарція</span>
        </div>
           </div>
       );
   }

   export const ConnectNewHeader = connect()(NewHeader);

код мувлист

       onst [{movieList} = props, dispatch] = useReducer(reducer, {
    movieList: [],
       })

       const getMovies = async () => {
    try {
        const requestMovies = await fetch(https://api.themoviedb.org/3/discover/movie?       
           api_key=${apiKey}&language=en-US&sort_by=popularity.
           desc&include_adult=false&include_video=false&page=1);
        const jsonMovies = await requestMovies.json();
        const {results} = jsonMovies;
        console.log(results);
        dispatch({type: "GET_MOVIES", payload: results});

    } catch (e) {
        console.log(e);
    }
       }
       const render = () => {
    return (movieList.map(value => {
        return (
            <div key={value.id}>{value.title}</div>
        )
    }))

       }
       useEffect(() => {
           getMovies();
       }, []);

       useEffect(() => {
    render();
       }, [movieList]);


       return (
    
    <div>{render()}

    </div>
       )

   }

   export const ConnectNewMovielist = connect()(NewMovielist);

Ответы (0 шт):