{"action":"created","issue":{"url":"https://api.github.com/repos/gaearon/redux/issues/195","labels_url":"https://api.github.com/repos/gaearon/redux/issues/195/labels{/name}","comments_url":"https://api.github.com/repos/gaearon/redux/issues/195/comments","events_url":"https://api.github.com/repos/gaearon/redux/issues/195/events","html_url":"https://github.com/gaearon/redux/pull/195","id":92206321,"number":195,"title":"Breaking API changes for 1.0","user":{"login":"gaearon","id":810438,"avatar_url":"https://avatars.githubusercontent.com/u/810438?v=3","gravatar_id":"","url":"https://api.github.com/users/gaearon","html_url":"https://github.com/gaearon","followers_url":"https://api.github.com/users/gaearon/followers","following_url":"https://api.github.com/users/gaearon/following{/other_user}","gists_url":"https://api.github.com/users/gaearon/gists{/gist_id}","starred_url":"https://api.github.com/users/gaearon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gaearon/subscriptions","organizations_url":"https://api.github.com/users/gaearon/orgs","repos_url":"https://api.github.com/users/gaearon/repos","events_url":"https://api.github.com/users/gaearon/events{/privacy}","received_events_url":"https://api.github.com/users/gaearon/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":30,"created_at":"2015-06-30T21:32:10Z","updated_at":"2015-07-09T13:21:38Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/gaearon/redux/pulls/195","html_url":"https://github.com/gaearon/redux/pull/195","diff_url":"https://github.com/gaearon/redux/pull/195.diff","patch_url":"https://github.com/gaearon/redux/pull/195.patch"},"body":"### Naming\r\n\r\n* “Stateless Stores” are now called reducers. (https://github.com/gaearon/redux/issues/137#issuecomment-114178411)\r\n* The “Redux instance” is now called “The Store”. (https://github.com/gaearon/redux/issues/137#issuecomment-113252359)\r\n* The dispatcher is removed completely. (https://github.com/gaearon/redux/pull/166#issue-90113962)\r\n\r\n### API changes\r\n\r\n* <s>`composeStores`</s> is now `composeReducers`.\r\n* <s>`createDispatcher`</s> is gone.\r\n* <s>`createRedux`</s> is now `createStore`.\r\n* `<Provider>` now accepts `store` prop instead of <s>`redux`</s>.\r\n* The new `createStore` signature is `createStore(reducer: Function | Object, initialState: any, middlewares: Array | ({ getState, dispatch }) => Array)`.\r\n* If the first argument to `createStore` is an object, `composeReducers` is automatically applied to it.\r\n* The “smart” middleware signature changed. It now accepts an object instead of a single `getState` function. The `dispatch` function lets you “recurse” the middleware chain and is useful for async: #113 (comment).\r\n\r\n### Correctness changes\r\n\r\n* The `dispatch` provided by the default thunk middleware now walks the whole middleware chain.\r\n* It is enforced now that raw Actions at the end of the middleware chain have to be plain objects.\r\n* Nested dispatches are now handled gracefully. (#110, #119)\r\n\r\n### Internal changes\r\n\r\n* The object in React context is renamed from <s>`redux`</s> to `store`.\r\n* Some tests are rewritten for clarity, focus and edge cases.\r\n* Redux in examples is now aliased to the source code for easier work on master."},"comment":{"url":"https://api.github.com/repos/gaearon/redux/issues/comments/119962215","html_url":"https://github.com/gaearon/redux/pull/195#issuecomment-119962215","issue_url":"https://api.github.com/repos/gaearon/redux/issues/195","id":119962215,"user":{"login":"vladap","id":4263458,"avatar_url":"https://avatars.githubusercontent.com/u/4263458?v=3","gravatar_id":"","url":"https://api.github.com/users/vladap","html_url":"https://github.com/vladap","followers_url":"https://api.github.com/users/vladap/followers","following_url":"https://api.github.com/users/vladap/following{/other_user}","gists_url":"https://api.github.com/users/vladap/gists{/gist_id}","starred_url":"https://api.github.com/users/vladap/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vladap/subscriptions","organizations_url":"https://api.github.com/users/vladap/orgs","repos_url":"https://api.github.com/users/vladap/repos","events_url":"https://api.github.com/users/vladap/events{/privacy}","received_events_url":"https://api.github.com/users/vladap/received_events","type":"User","site_admin":false},"created_at":"2015-07-09T13:21:38Z","updated_at":"2015-07-09T13:21:38Z","body":"Those damned ActionCreators. There is bindActionCreators() but dispatch(action) on a component level. We know that we actually dispatch (or something like that) actionCreator.\r\n\r\nBut isn't it confusing for somebody new this ActionCreator vs Action \"fight\"?\r\n\r\nI'm fine with dispatch(action) and would like to have bindActions but it is not technically correct, at least not for async code. It works when there is 1:1 relation between AC and A, then AC can be seen as a hidden mediator between views and stores. It stops to work when AC starts to be more complex having quite a bit of logic and generates additional actions.\r\n\r\nSaying that I'm binding AC and dispatching AC feels bad."}}