
Name
25.11.2016
16:56:54
первый стейдж
@
можно в продакшн

[Anonymous]
25.11.2016
16:58:38

Name
25.11.2016
16:59:37
стэк экономится

Сергей
25.11.2016
16:59:53
ну как бы да
one(param)(two(param,param)(three(param, whoo)(ClassName)))
или
compose(one(param), two(param, param), three(param, whoo))(ClassName)

Google

[Anonymous]
25.11.2016
17:01:15
?

Aleksey
25.11.2016
18:49:44
Сегодня спрашивал про тему одну, но не могу ее применить. В общем есть 2 приложения на react-redux. Один генерирует файл config.json на сервере, а второй его должен подобрать. Как это сделать? Имя файла второе приложение заранее знает.

Ivan
25.11.2016
19:21:52
а насколько большими можеть быть стейт объект приложения с редакс. Везде в уроках используется всего на пару строк для примера. начинаешь учить, что то писать и он разрастается разрастается, а где предел? есть ли примеры стейта большого приложения. Просто объект поглазеть

Исмаил
25.11.2016
19:31:39
Большой стейт собирается из кучи мелких

Ivan
25.11.2016
19:40:30
ну я написал для обучения магазин небольшой, разместил там 10 лотов, их можно добавлять в корзину, а потом убирать из корзины и т.д. у меня получается в стейте уже хранится массив со всеми лотами, для корзины свой объект создан. туда должны входить данные о пользователе.

Vitaly
25.11.2016
19:40:33

Ivan
25.11.2016
19:41:06
получается мне надо подгружать лоты только тогда, когда мне надо их отобразить?

Сергей
25.11.2016
19:41:37
В корзине можно было массив айди хранить

.
25.11.2016
19:41:54
я вот не реакт программист, но все же задам вопрос. Это норм для стейтов юзать normalizr или надо просто уметь стейты проектировать нормально?

Evgeny
25.11.2016
19:42:22
2

Vitaly
25.11.2016
19:42:24
нормально, но как по мне immutable лучше)

Сергей
25.11.2016
19:42:30

Evgeny
25.11.2016
19:42:40
Иммутейбл не нужен

Google

Ivan
25.11.2016
19:42:58

Vasiliy
25.11.2016
19:43:02
лучше избегать дублирования данных в стейте,
хранить данные, по возможности, в нормализованном виде

.
25.11.2016
19:43:31
почему? ведь иммутабельные штуки быстрее копируются
и можно сделать поверхностную проверку на изменение состояния

Vitaly
25.11.2016
19:46:31
ну... и да и нет, имьютабл имеет много методов мутации из коробки, просто мне не зашел addons-update, а писать { ...s, item: { ...s.item, value: ''}} слишком жутко

Vasiliy
25.11.2016
19:46:33
https://hackernoon.com/avoiding-accidental-complexity-when-structuring-your-app-state-6e6d22ad5e2a#.fcc9joacj – про normalizr тоже упоминает чел

Vitaly
25.11.2016
19:47:18
проше return s.setIn(['item', 'value'], '')
с нормалайзером надо схемы писать, а мне лениво -_-

Vasiliy
25.11.2016
19:55:44
а еще есть линзы, но это не новость
over, lens, prop, lensProp в ramda

Ruslan
25.11.2016
21:12:57
Есть несколько статей по линзам http://blog.csssr.ru/2016/07/08/lenses/

Amon Bower
25.11.2016
21:20:18
Люди, есть у кого-то свои работы, которые он пилил с редаксом? Хочу на живых примерах посмотреть
и разобрать код

Vasiliy
25.11.2016
21:28:17
все настолько хреново получается, что стыдно показывать (:

Vladimir
25.11.2016
21:37:32

Denis
25.11.2016
21:56:24
только добрался посмотреть что там с реакт роутером 4 версии
я правильно понял что теперь в любом месте пишем Match и нет единого конфига?

Evgeny
25.11.2016
21:56:34
Да

Denis
25.11.2016
21:57:10
окей, если кто имел опыт, как с ним делать code splitting по роутам?
{
path: '/',
name: 'home',
getComponent(nextState, cb) {
const importModules = Promise.all([
System.import('containers/HomePage/reducer'),
System.import('containers/HomePage/sagas'),
System.import('containers/HomePage'),
]);
const renderRoute = loadModule(cb);
importModules.then(([reducer, sagas, component]) => {
injectReducer('home', reducer.default);
injectSagas(sagas.default);
renderRoute(component);
});
importModules.catch(errorLoading);
},
}
что-то подобное, это для 3
и есть ли существенные недостатки\баги, ибо все выглядит заманчиво

Google

Evjeni
25.11.2016
22:30:21
ребзи, react devtools для сафари есть?

Akzhan
25.11.2016
23:13:48
читайте комменты тут - https://github.com/facebook/react-devtools/issues/67#issuecomment-103217591
возможно, поможет https://github.com/facebook/react-devtools/commit/d3b52777e143eee737a65995ecbbd32fa75e7d14

Aleksey
26.11.2016
05:03:39

Petr
26.11.2016
05:22:29
Таким образом загрузка страницы будет происходить моментально

Admin
ERROR: S client not available

Max
26.11.2016
06:51:10
ребят, а есть чаты по ботам и AI?

Никита
26.11.2016
09:50:48
Всем привет! Подскажите в чём косяк. В компоненте пишу
import logo from './img/sidebar/logo.png'
<img src={logo}/>
в вебпаке юзаю урл-лоадер
{ test: /\.png$/, loader: 'url-loader?limit=10000&mimetype=image/png' },
Но при запуске ругается
\node_modules\babel-core\lib\transformation\file\index.js:600
SyntaxError:(...)src/components/Sidebar/img/sidebar/logo.png: Unexpected character '�' (1:0)

Сергей
26.11.2016
09:55:57
Кодировка
У тебя там есть bom

Никита
26.11.2016
09:56:16
в картинке?

Сергей
26.11.2016
10:36:08
какой версии вебпак?

Никита
26.11.2016
10:37:26
"webpack": "^1.13.3"

Сергей
26.11.2016
10:38:38
вроде все ок
скорее всего ошибка где-то в другом месте конфига


Никита
26.11.2016
10:39:13
https://habrahabr.ru/post/309958/
вот отсюда брал конфиг
global.Promise = require('bluebird');
const webpack = require('webpack');
const path = require('path');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const publicPath = '/public/assets/';
const cssName = 'styles.css';
const jsName = 'bundle.js';
const plugins = [
new webpack.DefinePlugin({
'process.env': {
NODE_ENV: JSON.stringify(process.env.NODE_ENV || 'development')
}
}),
new ExtractTextPlugin(cssName)
];
module.exports = {
entry: ['babel-polyfill', './src/client.js'],
debug: true,
resolve: {
root: path.join(__dirname, 'src'),
modulesDirectories: ['node_modules'],
extensions: ['', '.js', '.jsx']
},
plugins,
output: {
path: `${__dirname}/public/assets/`,
filename: jsName,
publicPath
},
module: {
loaders: [
{
test: /\.css$/,
loader: ExtractTextPlugin.extract('style-loader', 'css-loader!postcss-loader')
},
{
test: /\.less$/,
loader: ExtractTextPlugin.extract('style-loader', 'css-loader!postcss-loader!less-loader')
},
{test: /\.gif$/, loader: 'url-loader?limit=10000&mimetype=image/gif'},
{test: /\.jpg$/, loader: 'url-loader?limit=10000&mimetype=image/jpg'},
{test: /\.png$/, loader: 'url-loader?limit=10000&mimetype=image/png'},
{test: /\.svg/, loader: 'url-loader?limit=26000&mimetype=image/svg+xml'},
{test: /\.(woff|woff2|ttf|eot)/, loader: 'url-loader?limit=1'},
{
test: /\.jsx?$/,
loader: 'babel!eslint-loader',
exclude: [/node_modules/, /public/]
},
{test: /\.json$/, loader: 'json-loader'},
]
},
devtool: 'source-map',
devServer: {
headers: {'Access-Control-Allow-Origin': '*'}
},
eslint: {configFile: '.eslintrc'}
};
вот так проще

Google

Котяй Негодяй
26.11.2016
11:26:00
Возможна ли несовместимость приложения или отдельных компонентов с React Native, и, если да, то что на это влияет? Или достаточно просто прописать в конфиге вебпака alias: { 'react-native': 'react-native-web' }?

Никита
26.11.2016
11:42:33

Razzwan
26.11.2016
11:43:22
Привет всем.

Никита
26.11.2016
11:43:27
скрипты запуска такие:
"nodemon": "set NODE_PATH=./src; && nodemon server.js",
"webpack-devserver": "webpack-dev-server --debug --hot --devtool eval-source-map --output-pathinfo --watch --colors --inline --content-base public --port 8050 --host 0.0.0.0"

Sheldhur
26.11.2016
13:59:28

Никита
26.11.2016
13:59:49

Sheldhur
26.11.2016
13:59:53
судя по Unexpected character '�'

Сергей
26.11.2016
14:06:21
редактор может добавлять bom