小编Dou*_*ose的帖子

当Redux状态更改为低于第一级时,React不会更新

我在Redux中拥有自己的状态,并且正在使用react-redux连接器将其绑定到我的React应用程序中.在设置状态的初始运行期间,连接工作很好.但是,当我更新我的reducer中的一部分状态时,React没有读取它的更改,因此组件不会再次渲染.当我做一些强制渲染的其他动作时,状态实际上已经改变了.

它似乎有与没有被所述状态做识别已经改变为和,在反应-终极版的wrapWithConnect方法,所述storeChanged和propsChanged都评估为假通过初始运行之后.一个线索可能是反应 - 还原在这些检查中的浅层比较.

问题是" 当Redux中的状态发生变化时,我需要做些什么才能让React显示对状态的更改 "?

国家的相关部分如下

let thisOrder = Immutable.fromJS( {
"projectNumber": '',
"orderHeader": {
    "order_id": "",
    "firstname": "",
    "lastname": "",
    "address1": "",
),
"orderProducts": [],
"lastOperation": ''} );
Run Code Online (Sandbox Code Playgroud)

更新的部分是orderProducts,这是一组基本上看起来像的产品

  orderProducts:[{productSKU:'Y54345',productDesc:'What it is',price:"4.60",qty:2},
{productSKU:'Y54345',productDesc:'What what is',price:"9.00",qty:1}]
Run Code Online (Sandbox Code Playgroud)

当更新下面的reducer中的qty或price(由动作调用)时,结果newState 具有更改

 case OrderConstants.ORDER_PRODUCT_UPDATE:{

 let productList = updateProductList( action.updateProduct, state.get(
 'orderProducts' ))

 let newState = state.update( 'orderProducts',
 productList).set('lastOperation', action.type);

  return newState;}
Run Code Online (Sandbox Code Playgroud)

最后,控制React组件然后向下游发送道具

    render: function () {
        return (
            <div>
                <ProductList updateOrder={this.updateOrder()} products={this.props.products}/>

                    {this.submitContinueButton()} {this.submitButton()}
                    {this.cancelButton()}
                </div>
            </div>
        ) …
Run Code Online (Sandbox Code Playgroud)

reactjs immutable.js redux

5
推荐指数
1
解决办法
1307
查看次数

如何检查Vue中是否存在类的多个元素?

我有一个Vue应用程序,它是一个复杂的表单,根据您做出的选择,其中包含许多开关规则。我通过在各部分中创建组件来完成此操作。在启用“提交”按钮(在上一节中)之前,我要检查是否可以填写的所有内容都已启用。我有一个在填充元素后会更新的类。需要填充的类将一直存在,直到将某些数据放入字段或组件中为止

<template>
  <div>
  <div>
        <label class="block">
          <span :class="[Boolean(loadFormDate) ? 'bg-blue-lighter': 'need-to-fill']"><strong>Date:</strong></span>
          <datepicker
            placeholder="Select Date"
            @selected="commitDate('formDate', $event)"
            :value="loadFormDate" />
        </label>
      </div>
      <div class="flex-1">
        <label class="block">
          <span  :class="[Boolean(staffID) ? 'bg-blue-lighter': 'need-to-fill','w-full']"><strong>Staff ID:</strong></span>
          <input class="block" placeholder="Staff ID"
                 @input="commitField('staffID', $event.target.value)"
                 :value="staffID"
          />
        </label>
      </div>
  </div>
</template>
Run Code Online (Sandbox Code Playgroud)

我想搜索所有元素,以查看“需要填写”在任何元素中都不存在,如果不存在,则启用提交按钮。

vuejs2

5
推荐指数
1
解决办法
56
查看次数

标签 统计

immutable.js ×1

reactjs ×1

redux ×1

vuejs2 ×1