如何在store.getState()之前调用函数

时间:2019-05-09 08:39:14

标签: javascript reactjs redux

我是新来的人,要做出反应并做些还原。这可能是一个非常简单的问题,但我找不到更好的出路。 考虑这样的商店

Watermark

BackEnd提供了一个名为12:10的Api。发送{ list:[ {uid:'35',...otherInfo}, {uid:'136',...otherInfo}, {uid:'199',...otherInfo}, ] } ,然后接收getInfoByUid

动作

uid

在React组件中。简而言之,此组件仅从父级收到otherInfo,然后显示function addInfoByUid(uid){ // fetch back-end-api getInfoByUid(uid) then store the res into list }

uid

如果列表中不包含我提供的otherInfo,那么我将得到class ComponentA extends React.Component{ render(){ const { list, presentUid } = this.props; const item = list.find( x=>x.uid === presentUid ); return ( <div>{item.otherInfo}</div> ) } } export default connect( state => ({list:state.list}), dispatch => ({addInfoByUid: (uid) => { dispatch(addInfoByUid(uid)) }}), )(OrderEdit); 不确定,而uid将导致错误。

我必须将item写入item.otherInfo。 我认为这样做会导致代码变得更糟且难以维护,原因如下:

  1. 如果我有很多组件,则必须在每个组件中添加相同的代码。
  2. 我认为React的角色是控制视图,而Redux的角色是控制全局数据。因此,最好将这些代码与我的reducer或action添加在一起。

我在想的是在(!item) && (addInfoByUid(uid));之前调用函数,像这样:

componentA

但是,我认为这是一个糟糕的解决方案。它将导致错误,并且可能无法解决异步问题。

这应该是一个常见问题。任何建议将不胜感激。

0 个答案:

没有答案