Answers:
只是添加到以前的解决方案。具体的解决方法是添加“ storageConfig”项。如果缺少此属性,则会看到行数据重复的问题。
<item name="storageConfig" xsi:type="array">
<item name="indexField" xsi:type="string">entity_id</item>
</item>
其中“ entity_id”是收集数据的主键,并且与
<argument name="primaryFieldName" xsi:type="string">entity_id</argument>
并且可以完全删除以下内容。由于这只是复制已经在“ dataProvider”节点中指定的值。
<argument name="data" xsi:type="array">
<item name="js_config" xsi:type="array">
<item name="component" xsi:type="string">Magento_Ui/js/grid/provider</item>
</item>
</argument>
我遇到了同样的问题,我在ui_component xml中使用以下代码解决了:
<dataSource name="storelocator_store_listing_data_source">
<argument name="dataProvider" xsi:type="configurableObject">
<argument name="class" xsi:type="string">StoreGridDataProvider</argument>
<argument name="name" xsi:type="string">storelocator_store_listing_data_source</argument>
<argument name="primaryFieldName" xsi:type="string">store_id</argument>
<argument name="requestFieldName" xsi:type="string">id</argument>
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="component" xsi:type="string">Magento_Ui/js/grid/provider</item>
<item name="update_url" xsi:type="url" path="mui/index/render"/>
<item name="storageConfig" xsi:type="array">
<item name="indexField" xsi:type="string">store_id</item>
</item>
</item>
</argument>
</argument>
<argument name="data" xsi:type="array">
<item name="js_config" xsi:type="array">
<item name="component" xsi:type="string">Magento_Ui/js/grid/provider</item>
</item>
</argument>
</dataSource>
看一下节点名称“ DataProvider”。希望能帮助到你
我在Magento 2.3上遇到了同样的问题,并通过使用以下代码解决了ui_component xml
。
<dataSource component="Magento_Ui/js/grid/provider" name="listing_data_source">
<settings>
<storageConfig>
<param name="indexField" xsi:type="string">primary_id</param>
</storageConfig>
<updateUrl path="mui/index/render"/>
</settings>
...
...
</dataSource>