I’m trying to use props values in my HoC but i’m struggling quiet hard
Here is my code :
export default compose( connectEndpoint({ discussion: getDiscussionRequest( props.message.discussionid, { refreshing: true }, props.message.flag ), contacts: getContactsByFlagRequest({ refreshing: true }, props.message.flag) }),
and here is the connectEndpoint function :
export default requests => compose( connect(() => withSingleApi(typeof requests === "function" ? requests() : requests) ) );
I’m trying to use my props value when i call “connectEndpoint” but i don’t know what syntax should i use to have access to “props”. I tried to use “withProps” but with no success on this case
Thanks in advance!
Advertisement
Answer
Since you are using connect
within your connectEndPoint
HOC , you can implement the requests
property of your connectEndPoint
HOC as a function and pass on the state and props from connect to it.
export default requests => compose( connect((state, props) => withSingleApi(typeof requests === "function" ? requests(state, props) : requests) ) );
and use it like
export default compose( connectEndpoint((state, props) => ({ discussion: getDiscussionRequest( props.message.discussionid, { refreshing: true }, props.message.flag ), contacts: getContactsByFlagRequest({ refreshing: true }, props.message.flag) }));
The reason you were not receiving props in your implementation was because connectEndPoint is a function that is being called and only the return value from it is being used to render the component which receives the props