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