0

このコードを実行しようとしましたが、実行時エラーが表示されます

TypeError: オブジェクトは反復可能ではありません (プロパティ Symbol(Symbol.iterator) を読み取れません)

これがコードです。

import React, { useContext} from "react";
import { GlobalContext } from '../GlobalState';

const MediaCard = ({ songs, categotyTitle }) => {
  const [{}, dispatch] = useContext(GlobalContext);
  const setCurrentVideoSnippet = data => {
    dispatch({ type: "setCurrentVideoSnippet", snippet: data });
  };
export default MediaCard;

エラーはこのコード行を指していますconst [{}, dispatch] = useContext(GlobalContext);

GlobalState コード

import React, { useReducer } from "react";

export const GlobalContext = React.createContext();

const initialState = {
  currentVideoSnippet: {}, 
};

const reducer = (state, action) => {
  switch (action.type) {
    case "setCurrentVideoSnippet":
      return {
        ...state,
        currentVideoSnippet: action.snippet
      };
 default:
      return state;
  }
};

export const GlobalState = props => {
  const globalState = useReducer(reducer, initialState);
  return (
    <GlobalContext.Provider value={globalState}>
      {props.children}
    </GlobalContext.Provider>
  );
};
4

3 に答える 3

2

これでOPの問題が解決しないことはわかっていますが、このページで同じ実行時エラーメッセージが表示された私のような人にとっては、GlobalContextコンポーネントをインポートする方法が原因で問題が発生しました.

間違った道: import GlobalContext from '../GlobalState';

正しい方法: import { GlobalContext } from '../GlobalState';

これにより、同じエラー メッセージで発生していた問題が修正されました。

于 2020-11-19T20:22:14.827 に答える