Как мне обновить значение функции диспетчерской, чтобы всякий раз, когда пользователь выбирал дату обновления, она обновJavascript

Форум по Javascript
Ответить
Anonymous
 Как мне обновить значение функции диспетчерской, чтобы всякий раз, когда пользователь выбирал дату обновления, она обнов

Сообщение Anonymous »

Я пытаюсь обновить дату обновления от state.form.form.radewon, когда пользователь выбирает, но значение по умолчанию для этого будет на один месяц вперед с даты Starton. < /p>
Начальный Значение для Starton и Renewon была установлена ​​на NULL. Всякий раз, когда я пытаюсь установить обновление до более чем одного месяца, функция вызывается и сбрасывается на один месяц. Поскольку это в новой модели оплаты, дата Starton должна быть установлена ​​на последнюю дату продления, и дата обновления должна быть установлена ​​на один месяц вперед по умолчанию. Пользователь должен иметь возможность обновить дату обновления более чем на месяц, но всякий раз, когда я пытаюсь вызвать эту функцию, он продолжает цикл и сброс обратно в дату по умолчанию. < /P>
const setPaymentData = (data: GetPaymentSummaryResponse) => {
let startOn = state.form.Start_On;
let renewOn = state.form.Renew_On;
console.log("Initial Start On:", startOn);
console.log("Initial renew On:", renewOn);

if (data.results.paymentSummary)
{
console.log("Payment Summary Data:", JSON.stringify(data.results.paymentSummary));
if (data.results.paymentSummary.startOn && data.results.paymentSummary.renewOn)
{
startOn = localIsoString(data.results.paymentSummary.renewOn).slice(0,10);
renewOn = addMonths(new Date(startOn), 1).toISOString().slice(0, 10);
} else if (data.results.paymentSummary.startOn) {
startOn = localIsoString(data.results.paymentSummary.startOn).slice(0,10);
renewOn = addMonths(new Date(startOn), 1).toISOString().slice(0, 10);
}
} else {
//New Members startOn date and renewOn date
startOn = new Date().toISOString().slice(0,10);
renewOn = addMonths(new Date(), 1).toISOString().slice(0,10);
}
console.log("Start On:", startOn);
console.log("renew On:", renewOn);
< /code>
const initialState = {
Type: [] as IType[],
Start_On: new Date().toISOString().slice(0, 10),
Renew_On: addMonths(new Date(), 1).toISOString().slice(0, 10),
Payment_Mode: "cash",
Funding_Option: [] as IFundingOption[],
Optional_Member: [] as IHealthyMemberDifference[],
PaymentSummary: {
plan_Price: {
price: 0,
currency: "",
month: "",
},`your text`
active_Members: 0,
options: 0,
duration: 0,
costs: 0,
total_Cost: 0,
deductions: 0,
offset_Difference: 0,
offset_Payment: 0,
currency: "",
startOn: null as string | null | undefined,
renewOn: null as string | null | undefined,
},
Members_List_Payment: [] as CreatePaymentBody["members_List_Payment"],
SMSToLeader: false,
};
< /code>
this is initial state.
Dispatch:
dispatch({
type: "set_form",
payload: {
PaymentSummary: {
plan_Price: data.results.paymentSummary.plan_Price,
active_Members: data.results.paymentSummary.active_Members,
options: data.results.paymentSummary.options,
duration: data.results.paymentSummary.duration,
costs: data.results.paymentSummary.costs,
total_Cost: data.results.paymentSummary.total_Cost,
deductions: data.results.paymentSummary.deductions,
offset_Difference: data.results.paymentSummary.offset_Difference,
offset_Payment: data.results.paymentSummary.offset_Payment,
currency: data.results.paymentSummary.currency,
startOn: data.results.paymentSummary.startOn,
renewOn: data.results.paymentSummary.renewOn,
},
Members_List_Payment: data.results.members_List_Payment.map((mp) => ({
member_Id: mp.member_Id,
memberName: mp.memberName,
memberPlan: mp.memberPlan,
transaction_type: mp.transaction_type,
})),
Type:
data.results.type?.map((type) => ({
id: type.id,
name: type.name,
})) ?? [],
Start_On: startOn,
Renew_On: renewOn,

Funding_Option:
data.results.funding_Option?.map((fo) => ({
Member_Id: fo.member_Id,
Type: {
id: fo.type.id,
name: fo.type.name,
},
Amount: fo.amount,
})) ??
state.form.Funding_Option ??
[],
Optional_Member:
data.results.optional_Member?.map((om) => ({
Member_Id: om.member_Id,
Quantity: om.quantity,
Amount: om.amount,
})) ??
state.form.Optional_Member ??
[],
Payment_Mode: data.results.payment_Mode ?? "cash",
},
});
};


Подробнее здесь: https://stackoverflow.com/questions/794 ... ser-choose
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»