راکت

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

بدون پاسخ

سلام. من میخوام توی یه فانکشن جاوااسکریپتی از ریداکس استفاده کنم. ولی 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;
ثبت پرسش جدید

پاسخ‌ها

0

هنوز پاسخی ثبت نشده

اولین نفری باشید که به این پرسش کمک می‌کند و مسیر حل مشکل را باز می‌کند.

اولین پاسخ را بنویسید

شاید پاسخ شما همین‌جا باشد

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

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