Parastoo Ebrahimi
4 سال پیش توسط Parastoo Ebrahimi مطرح شد
0 پاسخ

مشکل با ریداکس

سلام. من میخوام توی یه فانکشن جاوااسکریپتی از ریداکس استفاده کنم. ولی props ها آپدیت نمیشن. نمیدونم اشکال کدم کجاهست. کد به این صورت هست که یه مقداری رو میگیره و اونو در قالب 6 تا چیز باید تحویل بده. که خب این چیزها رو دیباگ گرفتم و درست عمل میکنه. فقط props ها آپدیت نمیشن.
یه نکته دیگه اینکه من createStore رو توی index.js اضافه کردم ولی چون اینجا دسترسی به props ندارم باز مجبور به اضافش شدم.
@hesammousavi
@kamran.davar
@sinashahoveisi
@mohsenbostan

import React from 'react';
import reducers from '../../../reducers/index';
import { createStore } from 'redux';
import { DaysOfMonth, DaysOfWeek, HoursOfDay, MinutesOfHour, MonthsOfYear, NthDayOfWeek } from '../../../actions/index';
const store = createStore(reducers);
const transformCronsExpressionToData = (scheduledTask) => {
    let scheduleTask = {};
    scheduleTask.cronExpressionDescription = scheduledTask.cronExpressionDescription;
    scheduleTask.dataFormat = scheduledTask.dataFormat;
    scheduleTask.cronExpression = scheduledTask.cronExpression;
    scheduleTask.starts = scheduledTask.starts;
    scheduleTask.scheduleType = scheduledTask.scheduleType;
    scheduleTask.created = scheduledTask.created;
    scheduleTask.description = scheduledTask.description;
    scheduleTask.id = scheduledTask.id;
    scheduleTask.task = scheduledTask.task;
    let cronExpressionArray;
    if (scheduleTask.cronExpression) {
        cronExpressionArray = scheduleTask.cronExpression.split(' ');
    }
    let minutesOfHour = [];
    let hoursOfDay = [];
    let daysOfMonth = [];
    let monthsOfYear = [];
    let dayAndNth;
    let daysOfWeek = [];
    let nthDayOfWeek = "";
    if (cronExpressionArray) {
        if (cronExpressionArray[1] != '*') {
            let values = cronExpressionArray[1].split(',');
            for (let i = 0; i < values.length; i++) {
                let split = values[i].split('-');
                if (split.length > 1) {
                    for (let j = parseInt(split[0]); j <= parseInt(split[split.length - 1]); j++) {
                        minutesOfHour.push(parseInt(j.toString()));
                    }
                } else {
                    minutesOfHour.push(parseInt(split[0]));
                }
            }
        }
        if (cronExpressionArray[2] != '*') {
            let values = cronExpressionArray[2].split(',');
            for (let i = 0; i < values.length; i++) {
                let split = values[i].split('-');
                if (split.length > 1) {
                    for (let j = parseInt(split[0]); j <= parseInt(split[split.length - 1]); j++) {
                        hoursOfDay.push(parseInt(j.toString()));
                    }
                } else {
                    hoursOfDay.push(parseInt(split[0]));
                }
            }
        };
        if (cronExpressionArray[3] != '*' && cronExpressionArray[3] != '?') {
            daysOfMonth = cronExpressionArray[3].split(',').map(x => isNaN(x) ? x : parseInt(x))
        }
        if (cronExpressionArray[4] != '*') {
            let values = cronExpressionArray[4].split(',');
            for (let i = 0; i < values.length; i++) {
                let split = values[i].split('-');
                if (split.length > 1) {
                    for (let j = parseInt(split[0]); j <= parseInt(split[split.length - 1]); j++) {
                        monthsOfYear.push(parseInt(j.toString()));
                    }
                } else {
                    monthsOfYear.push(parseInt(split[0]));
                }
            }
        };
        dayAndNth = cronExpressionArray[5];
        dayAndNth = dayAndNth.split('#');
        if (cronExpressionArray[5] != '*' && cronExpressionArray[5] != '?') {
            if (cronExpressionArray[5].indexOf('#') >= 0 || cronExpressionArray[5].indexOf('L') >= 0) {
                let ind = cronExpressionArray[5].indexOf('#') >= 0 ? cronExpressionArray[5].indexOf('#') : cronExpressionArray[5].indexOf('L');
                nthDayOfWeek = cronExpressionArray[5].substr(ind)
                cronExpressionArray[5] = cronExpressionArray[5].substr(0, ind);
            }
            daysOfWeek = (cronExpressionArray[5].split(',').map(function (v) { return parseInt(v); }));
        }
    }
    debugger
    store.dispatch(MinutesOfHour(minutesOfHour));
    store.dispatch(HoursOfDay(hoursOfDay));
    store.dispatch(DaysOfWeek(daysOfWeek));
    store.dispatch(DaysOfMonth(daysOfMonth));
    store.dispatch(MonthsOfYear(monthsOfYear));
    store.dispatch(NthDayOfWeek(nthDayOfWeek));
};
export default transformCronsExpressionToData;

ثبت پرسش جدید

به همدیگه کمک کنیم

به Parastoo Ebrahimi کمک کنید تا مشکل خودش را حل کند؛ این‌طور می‌توانیم با هم پیشرفت کنیم.

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام