fuselibs
fuselibs copied to clipboard
Slider inside NativeViewHost
Reported in forum.
Fuse 1.8.1 MacOs High Sierra Tested on: Nexus 5 / Android 6.0 iPhone 7 / iOs 11.3
On Android Slider
wrapped inside NativeViewHost
incorectly calculates value from JS. Slider
without NativeViewHost
works as expected.
Expected: The value on Android should increment by "1" (one) and not that "random" value.
Code to reproduce:
<App>
<JavaScript>
var Observable = require("FuseJS/Observable");
var sliderValue = Observable(0);
var nativeSliderValue = Observable(0);
function update(){
for(let i = 0, length = 10; i < length; i++){
sliderValue.value = sliderValue.value + 1;
nativeSliderValue.value = nativeSliderValue.value + 1;
console.log("Slider value:" + sliderValue.value);
console.log("Native slider value:" + nativeSliderValue.value);
}
}
module.exports = {
sliderValue: sliderValue,
nativeSliderValue: nativeSliderValue,
update: update
}
</JavaScript>
<ClientPanel>
<StackPanel>
<Button Text="Click" Clicked="{update}" Height="100" />
<Slider Value="{sliderValue}"/>
<NativeViewHost>
<Slider Value="{nativeSliderValue}"/>
</NativeViewHost>
</StackPanel>
</ClientPanel>
</App>
Fuse Studio log:
...
[Viewport]: Native slider value:88
[Viewport]: Slider value:89
[Viewport]: Native slider value:89
[Viewport]: Slider value:90
[Viewport]: Native slider value:90
[Viewport]: Slider value:91
[Viewport]: Native slider value:91
[Viewport]: Slider value:92
[Viewport]: Native slider value:92
[Viewport]: Slider value:93
[Viewport]: Native slider value:93
[Viewport]: Slider value:94
[Viewport]: Native slider value:94
[Viewport]: Slider value:95
[Viewport]: Native slider value:95
[Viewport]: Slider value:96
[Viewport]: Native slider value:96
[Viewport]: Slider value:97
[Viewport]: Native slider value:97
[Viewport]: Slider value:98
[Viewport]: Native slider value:98
[Viewport]: Slider value:99
[Viewport]: Native slider value:99
[Viewport]: Slider value:100
[Viewport]: Native slider value:100
Android log:
...
[Nexus 5]: Slider value:88
[Nexus 5]: Native slider value:53.800000000000004
[Nexus 5]: Slider value:89
[Nexus 5]: Native slider value:54.800000000000004
[Nexus 5]: Slider value:90
[Nexus 5]: Native slider value:55.800000000000004
[Nexus 5]: Slider value:91
[Nexus 5]: Native slider value:51.8
[Nexus 5]: Slider value:92
[Nexus 5]: Native slider value:52.8
[Nexus 5]: Slider value:93
[Nexus 5]: Native slider value:53.8
[Nexus 5]: Slider value:94
[Nexus 5]: Native slider value:54.8
[Nexus 5]: Slider value:95
[Nexus 5]: Native slider value:55.8
[Nexus 5]: Slider value:96
[Nexus 5]: Native slider value:56.8
[Nexus 5]: Slider value:97
[Nexus 5]: Native slider value:57.8
[Nexus 5]: Slider value:98
[Nexus 5]: Native slider value:58.8
[Nexus 5]: Slider value:99
[Nexus 5]: Native slider value:59.8
[Nexus 5]: Slider value:100
[Nexus 5]: Native slider value:60.8
iOs log:
...
[Arturs’s iPhone]: Slider value:88
[Arturs’s iPhone]: Native slider value:88
[Arturs’s iPhone]: Slider value:89
[Arturs’s iPhone]: Native slider value:89
[Arturs’s iPhone]: Slider value:90
[Arturs’s iPhone]: Native slider value:90
[Arturs’s iPhone]: Slider value:91
[Arturs’s iPhone]: Native slider value:91
[Arturs’s iPhone]: Slider value:92
[Arturs’s iPhone]: Native slider value:92
[Arturs’s iPhone]: Slider value:93
[Arturs’s iPhone]: Native slider value:93
[Arturs’s iPhone]: Slider value:94
[Arturs’s iPhone]: Native slider value:94
[Arturs’s iPhone]: Slider value:95
[Arturs’s iPhone]: Native slider value:95
[Arturs’s iPhone]: Slider value:96
[Arturs’s iPhone]: Native slider value:96
[Arturs’s iPhone]: Slider value:97
[Arturs’s iPhone]: Native slider value:97
[Arturs’s iPhone]: Slider value:98
[Arturs’s iPhone]: Native slider value:98
[Arturs’s iPhone]: Slider value:99
[Arturs’s iPhone]: Native slider value:99
[Arturs’s iPhone]: Slider value:100
[Arturs’s iPhone]: Native slider value:100