brocoders / redux-async-connect

It allows you to request async data, store them in redux state and connect them to your react component.
645 stars 103 forks source link

The sample client code in usage doesn't work. #109

Open shilei812 opened 7 years ago

shilei812 commented 7 years ago

https://codesandbox.io/s/gL3zJKv9Z

`import { Router,Route , browserHistory } from 'react-router'; import { ReduxAsyncConnect, asyncConnect, reducer as reduxAsyncConnect } from 'redux-async-connect' import React from 'react' import { render } from 'react-dom' import { createStore, combineReducers } from 'redux'; import {Provider} from 'react-redux'; // 1. Connect your data, similar to react-redux @connect @asyncConnect({ lunch: (params, helpers) => Promise.resolve({id: 1, name: 'Borsch'}) }) class App extends React.Component { render() { // 2. access data as props const lunch = this.props.lunch return (

{lunch.name}
)

} }

// 3. Connect redux async reducer const store = createStore(combineReducers({reduxAsyncConnect}), window.__data);

// 4. Render Router with ReduxAsyncConnect middleware render((

} history={browserHistory}>

), document.getElementById('root'))`

result

Error in index.js: TypeError: asyncItems.map is not a function OPEN MODULE

lnikell commented 7 years ago

Have the same issue

tomCollinson commented 7 years ago

.map only works on arrays which the code in @asyncconnect isn't - it's an object. I'm not using this at the moment but from memory you need to add an array like this:

@asyncconnect([{ lunch: (params, helpers) => Promise.resolve({id: 1, name: 'Borsch'}) }])