bindEndpointActionCreator creates a bound FetchResource action creator. The endpoint url differs slightly, in that you can specify parameters.
bindEndpointActionCreator(url: string, options: ?object)
endpoint
(string)The REST endpoint of the resource. The url can be parameterized like '/things/:group(/:id)'
. Check out the url-pattern module for specifics around syntax.
Show Example
import {bindEndpointActionCreator} from 'redux-fetch-resource';
// using a relative path
export const FetchUsers = bindEndpointActionCreator('users');
// using an absolute path
export const FetchGroups = bindEndpointActionCreator('/groups');
// with parameters
export const FetchMessages = bindEndpointActionCreator('/messages/:thread_id');
// with optional parameters
export const FetchSettings = bindEndpointActionCreator('/settings(/:type)');
options
(object)Accepts the same options as FetchResource
see here for an exhaustive list of options
~BoundFetchResource
(function)An asynchronous action creator for the bound endpoint
~BoundFetchResource(options: ?object)
(function)options
(object)Any of the options to FetchResource may be used here and will override the ones specified in bindEndpointActionCreator
. The only additional option is params
options.params
(object)A map of parameters to populate the endpoint if it is parameterized
Show Example
import {combineReducers} from 'redux';
import {bindEndpointActionCreator} from 'redux-fetch-resource';
const FETCH_USERS_SUCCESS = 'FETCH_USERS_SUCCESS';
export const FetchUsers = bindEndpointActionCreator(
'/users/:team',
{
successType: FETCH_USERS_SUCCESS
}
);
import React from 'react';
import {connect} from 'react-redux';
import {FetchUsers} from './ActionReducer.js';
const mapStateToProps = state => ({
users: state.users
});
const mapDispatchToProps = dispatch => ({
fetchUsers: team => dispatch(
FetchUsers({ params: { team } })
)
});
@connect(mapStateToProps, mapDispatchToProps)
export default class MyComponent extends React.Component {
/* Insert your magic here */
}