如何用同一方法调用两个动作?

时间:2019-10-07 14:16:28

标签: axios react-native-android

我有2个动作:

这是第一

我在这里插入人:

export const InsertOrUpdate = (person) => {

    return (dispatch) => {
        var instance = Axios.create({
            baseURL: 'url',
            // timeout: 1000,
            headers: {
                "Content-Type": "application/json"
            }
        });
        instance.get("/InsertWorker", {
            params: {
                Name: person.Name,
                Surname: person.Surname,
                Duty: person.Duty,
                DateOfDay: person.Date.substring(0, person.Date.length - 9),
                Shift: person.Shift,
                WorkDayCount: person.WorkDayCount,
                Equipment: person.Equipment,
                Sicil: person.Sicil,
                Ship: person.Ship
            }
        });


    }
}

这是第二个

我在这里打电话给工人:

export const getSignedWorkers = (collection) => {
    return (dispatch) => {
        var instance = Axios.create({
            baseURL: 'url',
            // timeout: 1000,
            headers: {
                "Content-Type": "application/json"
            }
        });

        instance.get('/GetWorkers', {
            params: {
                DateOfDay: collection.Tarih,
                Shift: collection.Vardiya
            }
        })
            .then((response) => response.data)
            .then(x => {
                const Signed = str3.filter(x => x.Ship != "" && x.Shift != "H");
                console.warn('signed', Signed);

                const UnSigned = str3.filter(x => x.Ship == "" || null);
                const RemoveOnHolidays = UnSigned.filter(x => x.Shift != "H");

                const OnHoliday = str3.filter(x => x.Shift == "H");

                const AllWorkers = {};
                AllWorkers.signed = Signed;
                AllWorkers.Unsigned = RemoveOnHolidays;
                AllWorkers.OnHoliday = OnHoliday;

                dispatch({ type: FETCH_SIGNED_WORKERS_SIGNED, payload: AllWorkers });

            })
            .catch((error) => {
                console.warn('error', error);
            })

    }
}

我在这里将此动作称为:

_Insert = (person) => {
        person.Ship = this.props.gemi_Sefer_No;

        this.props.InsertOrUpdate(item);    <------- Here I call first action

        var date = new Date().getDate(); //Current Date
        var month = new Date().getMonth() + 1; //Current Month
        var year = new Date().getFullYear(); //Current Year
        var tarih = year + "/" + month + "/" + date;

        let collection = {};
        collection.Tarih = tarih;
        collection.Vardiya = this.props.vardiya == 0 ? "S" : this.props.vardiya == 1 ? "A" : this.props.vardiya == 2 ? "G" : null


        this.props.getSignedWorkers(collection);   <--- Here I call second action

    }

我尝试将worker插入数据库,然后从数据库调用所有worker并在redux中使用另一个组件。但是,有时它可以正常工作,有时却不能。

我的意思是,当我插入数据库并再次调用时,插入工作程序正常运行,但是调用所有工作程序时都没有插入最后一个工作程序的工作程序。就像我说的那样,有时效果不错。我该怎么办 ?。在同一方法中调用两个动作是否错误?如果是,该怎么办?

0 个答案:

没有答案