来自JavaFX ListChangeListener.Change API
公共抽象布尔值next()
转到下一个更改。处于初始状态的Change实例为 无效,需要在调用其他方法之前调用next()。 第一个next()调用将使该对象代表第一个 改变。
因此,如果我们有第一个更改,我们可以有第二个更改,等等。现在,考虑以下代码:
function product_pagination_by_category() {
if( is_product_category() )
$limit = 10;
return $limit;
}
add_filter( 'loop_shop_per_page', 'product_pagination_by_category');
这是输出:
public class NewMain {
public static void main(String[] args) throws InterruptedException {
ObservableList<String> list = FXCollections.observableArrayList("Z", "Y", "X");
list.addListener((ListChangeListener)(event) -> {
while(event.next()) {
System.out.println("Added:" + event.wasAdded());
System.out.println("Permutated:" + event.wasPermutated());
System.out.println("Removed:" + event.wasRemoved());
System.out.println("Replaced:" + event.wasReplaced());
System.out.println("Updated:" + event.wasUpdated());
}
});
System.out.println("REPLACING");
list.set(0, "W");
System.out.println("\nCLEARING");
list.clear();
}
}
如果可以替换的变更很明显-REPLACING
Added:true
Permutated:false
Removed:true
Replaced:true
Updated:false
CLEARING
Added:false
Permutated:false
Removed:true
Replaced:false
Updated:false
,那么当我们清除时如何解释,无论如何我们都会得到一个变更。请解释一下,当我们在ListChangeListener.Change中获得多个更改时?
答案 0 :(得分:3)
单个更改可以负责修改一系列值(您可以通过检查type='password'
的{{1}}和import React from 'react';
import Label from './Common/Label';
const TextInput = (props) => {
return(
<div>
<Label
name={props.name}
labelText={props.labelText}
>
</Label>
<div>
<input
type='text'
id={props.name}
name={props.name}
placeholder={props.placeholder}
value={props.value}
onChange={props.onChange}
onBlur={props.onBlur}
>
</input>
</div>
{props.isInvalidMsg && <div><span>{props.isInvalidMsg}</span></div>}
</div>
);
};
export default TextInput;
属性来确定)。通常,from
尝试触发最少数量的部分更改,为清楚起见,这是一个具有to
值为0且Change
等于调用ObservableList
之前列表的大小。
触发的确切更改取决于from
实现,但是通过to
可用的实现在分组修改方面做得很好。此类是所使用的许多clear()
实现的超类。
在标准的ObservableList
实现中,很少有可以触发单个事件的多部分更改的,但是ObservableListBase
可以做到这一点(感谢 @kleopatra提到了这一点):
ObservableList
输出:
ObservableList
任何retainAll
实现都可以定义新操作,这些操作可以分组进行多项更改,从而导致对侦听器的单个通知。实现此目的的最简单方法是使用ObservableList<Integer> ol = FXCollections.observableArrayList();
for (int i = 0; i < 10; i++) {
ol.add(i);
}
ol.addListener((ListChangeListener.Change<? extends Integer> event) -> {
System.out.println("new change----------------------------------------------");
while(event.next()) {
System.out.println("Added:" + event.wasAdded());
System.out.println("Permutated:" + event.wasPermutated());
System.out.println("Removed:" + event.wasRemoved());
System.out.println("Replaced:" + event.wasReplaced());
System.out.println("Updated:" + event.wasUpdated());
}
});
ol.retainAll(1, 3, 5, 7, 9);
的{{1}}和new change----------------------------------------------
Added:false
Permutated:false
Removed:true
Replaced:false
Updated:false
Added:false
Permutated:false
Removed:true
Replaced:false
Updated:false
Added:false
Permutated:false
Removed:true
Replaced:false
Updated:false
Added:false
Permutated:false
Removed:true
Replaced:false
Updated:false
Added:false
Permutated:false
Removed:true
Replaced:false
Updated:false
方法:
ObservableList
ObservableListBase
如果成功将触发2次替换更改。