Size: a a a

React: русскоязычное сообщество

2018 March 04

ЮЧ

Юра Чеботаев in React: русскоязычное сообщество
👍 Выглядит здорово. Напомнило Makefile-ы.
источник

ЮЧ

Юра Чеботаев in React: русскоязычное сообщество
Получается, что для coach-а все равно нужно писать примитивные action-ы и их нужно композировать. При этом, одна задача принимает на вход выход из другой задачи.
источник

ЮЧ

Юра Чеботаев in React: русскоязычное сообщество
При этом, если из 3-й задачи нужно получить доступ к 1-й, то это будет невозможно без модификации передаваемого объекта.
источник

NK

ID:72036040 in React: русскоязычное сообщество
Юра Чеботаев
Получается, что для coach-а все равно нужно писать примитивные action-ы и их нужно композировать. При этом, одна задача принимает на вход выход из другой задачи.
goal - и есть аналог экшена, только правильно сформулированный. У нас есть цель - сделать задачу, а не отреагировать на экшен в неопределенном месте и порядке
источник

ЮЧ

Юра Чеботаев in React: русскоязычное сообщество
Такой кейс:
class Items extends Coach {
 state = { list: [] };

 initAccount = this.goal(
   "fetch important items",
   [ userIdSelector,
     fetchUser,
     setupAppBar // Вот здесь я хочу получить доступ к userId на первом шаге
   ]
 )
}
источник

NK

ID:72036040 in React: русскоязычное сообщество
Юра Чеботаев
При этом, если из 3-й задачи нужно получить доступ к 1-й, то это будет невозможно без модификации передаваемого объекта.
Во первых всегда можно сделать throw и в хендлере вернуть индекс Таска, на который нужно вернуться. Это хак - но он решает проблемы если очень надо. А вообще просто нужно писать так Таски и Цели, что бы они были более или менее декларативны
источник

NK

ID:72036040 in React: русскоязычное сообщество
Юра Чеботаев
Такой кейс:
class Items extends Coach {
 state = { list: [] };

 initAccount = this.goal(
   "fetch important items",
   [ userIdSelector,
     fetchUser,
     setupAppBar // Вот здесь я хочу получить доступ к userId на первом шаге
   ]
 )
}
Вообще нужно пробрасывать, да
источник

ЮЧ

Юра Чеботаев in React: русскоязычное сообщество
ID:72036040
Во первых всегда можно сделать throw и в хендлере вернуть индекс Таска, на который нужно вернуться. Это хак - но он решает проблемы если очень надо. А вообще просто нужно писать так Таски и Цели, что бы они были более или менее декларативны
> просто нужно
Вот это самое сложное всегда ))
источник

NK

ID:72036040 in React: русскоязычное сообщество
Я думаю как решить этот вопрос
источник

ЮЧ

Юра Чеботаев in React: русскоязычное сообщество
Можно преобразовать массив в словарь.
источник

NK

ID:72036040 in React: русскоязычное сообщество
Юра Чеботаев
Такой кейс:
class Items extends Coach {
 state = { list: [] };

 initAccount = this.goal(
   "fetch important items",
   [ userIdSelector,
     fetchUser,
     setupAppBar // Вот здесь я хочу получить доступ к userId на первом шаге
   ]
 )
}
Пробрасывать довольно просто, врапаешь все в коллекцию и кидаешь ее из Таска в Таск. Но я подумаю, можно ли улучшить апи, типа передавать второй аргумент или делать доступ оп this
источник

NK

ID:72036040 in React: русскоязычное сообщество
Самое мощное, но и поасное, да, это то что доступен this
источник

NK

ID:72036040 in React: русскоязычное сообщество
я это намерено сделать
источник

NK

ID:72036040 in React: русскоязычное сообщество
Это unlimited power :)
источник

NK

ID:516385521 in React: русскоязычное сообщество
Юра Чеботаев
Да. Проверь, пожалуйста: писал по памяти, код не запускал.
Юр, глянь пожалуйста ещё раз, вроде всё поменял как сказал, перепроверил,
А при запуске - ругается на 37 строку 🙁
https://github.com/vyacheslavv44/music-react-app/blob/master/src/pages/Tracks/Tracks.js
источник

ЮЧ

Юра Чеботаев in React: русскоязычное сообщество
ID:72036040
Пробрасывать довольно просто, врапаешь все в коллекцию и кидаешь ее из Таска в Таск. Но я подумаю, можно ли улучшить апи, типа передавать второй аргумент или делать доступ оп this
Да. В gulp-е, с которым я работал до этого и была подобная концепция, и там это сложно решалось.
источник

NK

ID:72036040 in React: русскоязычное сообщество
Главная концепцая, все разбивать на микроТаски и опереирвоать ими в четкой последовательности. function-tree, конечные автоматы, вот это все очень явно и понятно, хорошо поддерживается. При этом места для хаков остается куча, вопрос больше не в том как что-то сделать, а вот, не стоит ли это запретить делать...
источник

ЮЧ

Юра Чеботаев in React: русскоязычное сообщество
Был объект File, у которого потом пришлось добавить свойство data, в котором хранить всю необходимую мета-информацию.
источник

NK

ID:516385521 in React: русскоязычное сообщество
источник

NK

ID:72036040 in React: русскоязычное сообщество
классика)
источник