Цей action дозволяє робити розгалуження в залежності від стану змінних в state
Приклад самої простої конфігурації, так звана «проста умова»:
{
"if": {
"{{total}}>3": "gt3"
}
}
Тут ми робимо одну єдину умову - якщо параметр більше константи, action поверне подію
Якщо ви бажаєте порівнювати текстові плейсхолдери з текстовими же значеннями, то потрібно брати рядки в 'одинарні лапки' ось так
{
"if": {
"'{{name}}'=='John'": "ok"
}
}
<aside> 🚧 Порівняння дат, regexp, квантори та інші варіанти порівняння в планах, але поки що не реалізовані, якщо вам не достатньо якоїсь можливості - напишіть нам
</aside>
Action може також встановлювати інші плейсхолдери, для цього використовуйте параметр set
{
"if": {
"{{currency_mapped_obj.total}}>3": "gt3",
"set": {
"newplaceholder": "(({{currency_mapped_obj.total}}*2))"
}
}
}
Можна також зазначити необмежену кількість ifelse блоків
{
"if": {
"{{currency_mapped_obj.total}}>3": "gt3",
"set": {
"newplaceholder": "(({{currency_mapped_obj.total}}*2))"
}
},
"elseif": {
"{{placeholder2}}!=1":"ne1"
}
}
Якщо потрібно побудувати логіку «ТА» (виконуються всі умови) або «АБО» (виконується хоча б одна з умов), прості умови доведеться замінити більш складними конструкціями
{
"if": {
"and": [
"{{currency_mapped_obj.total}}>=1",
"{{currency_mapped_obj.total}}<=2"
],
"event": "e2",
"set": {
"placeholder2": "e2"
}
}
}
Використовуються масиви
and
для логіки ТА, or
для логіки АБОevent
І все це можна об’єднати в одну велику конфігурацію
{
"if": {
"{{currency_mapped_obj.total}}>3": "gt3",
"set": {
"newplaceholder": "(({{currency_mapped_obj.total}}*2))"
}
},
"elseif": {
"and": [
"{{currency_mapped_obj.total}}>=1",
"{{currency_mapped_obj.total}}<=2"
],
"event": "e2",
"set": {
"placee2": "e2"
}
},
"else":{
"event": "e3",
"set": {
"placee3": "e3"
}
}
}
Зверніть увагу : else
не обов’язковий, його можна взагалі не використовувати, тому що else буде спрацьовувати якщо не спрацював жоден з if
або elseif
Також зверніть увагу, що цей action можна використовувати просто для маніпуляції даними state або зазначити умову, яка завжди виконується, наприклад так: