繁体   English   中英

Redux thunk - 异步操作范围更改

[英]Redux thunk - async action scope changes

技术:反应,打字稿


问题

我正在尝试在 redux 中编写一个异步操作创建器,它从服务器获取数据,但是我返回的内部函数的范围发生了变化并且什么都不知道


代码

动作/电影.ts

import MovieServer from '../../server/Movie';
import { setMovies } from './movieActions';

const fetchMovies = () => {
    console.log(MovieServer);
    return async (dispatch: any) => {
        console.log(MovieServer);
        const movies: Movie[] = await MovieServer.fetchMovies();

        dispatch(setMovies(movies));
    }
}

服务器/电影.ts

import Movie from "../models/movie";
import { serverURL } from "./config";

const fetchMovies = async (): Promise<Movie[]> => {
    let movies: Movie[] = [];

    try {
        const response = await fetch(serverURL + "/api/movie", {
            method: "GET"
        });


        if (!response.ok || response.status !== 200) {
            throw new Error("bad response");
        } else {
            movies = await response.json();
        }
    } catch (err) {}

    return movies;
} 

export default { fetchMovies };

当我运行代码时,第一个日志输出是MovieServer的函数MovieServer ,第二个日志输出是undefined

所以在内部函数里面有些东西不好,它会抛出一个错误。


我试过的

我尝试将内部函数包装在.bind(this)但它引发了 ts 编译错误: The containing arrow function captures the global value of 'this'.

感谢您的回答,但这是服务器的问题,我不知道为什么它会影响功能的范围,但我解决了

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM