brocoders / redux-async-connect

It allows you to request async data, store them in redux state and connect them to your react component.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

The sample client code in usage doesn't work.

shilei812 opened this issue · comments

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((

<Router render={(props) => <ReduxAsyncConnect {...props}/>} history={browserHistory}>



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

result

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

Have the same issue

.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'}) }])