React不会在Redux存储更改时重新渲染地图功能(使用MaterializeCss选择选项)

时间:2018-12-08 18:58:44

标签: reactjs redux react-redux

当redux状态更改时,反应不重新呈现。

当我进入此页面时,最初的redux存储“客户”为空。它获取数据,更新redux,但是未重新渲染的部分代码是select选项..,尽管redux存储正在存储中,但仅保留了“ Loading ”选项已更新。

这是相关的代码,请尽我所能简化..

E

我通过在返回中仅包含一个简单的h1标签进行了测试,由于某种原因,它可以正常工作,但是映射不会再次发生吗?

<button ion-item (click)="editItem(i, item)">
    <ion-avatar item-start>
        <img [src]="item.photo" />
    </ion-avatar>
    <h2>{{item.name}}</h2>
    <p>{{item.info}}</p>
</button>

编辑 :除了customers.length ..上的逻辑错误外,我没有提到我将MaterializeCss用于此选择选项,最后,逻辑fix + componentDidUpdate重新初始化Materialize解决了该问题。

1 个答案:

答案 0 :(得分:1)

检查您的逻辑。

您已经编码

{customers.length !== 0 ? (<option>Loading..</option>

这意味着如果长度大于零,则正在渲染“加载”。一定是

render(){
const customers = this.props.customers

if(!customers.length){
 return Loading
}

return(  
    <Field>
       <option value="" disabled selected>State</option>
            customers.map(customer => {
                return (
                  <option key={customer.id} value={customer.id}>
                    {customer.customer_name}
                  </option>
                );
              })
            )}
          </Field>
     )}

如果要像字段选项一样呈现负载,只需更改条件即可。希望对您有帮助