Чтобы ответить на ответ @ Jeffrey, я нашел гораздо более чистый способ, который скрывает разметку HTML до тех пор, пока JQM не закончит обработку страницы и не отобразит первый элемент страницы, так как я заметил, что 1/2 секундное мерцание без разметки перед JQM делает.
Вам нужно только скрыть всю разметку с помощью css ... PageShow () от JQM переключит видимость для вас.
//snip
<style type="text/css">
.hide {
display:none;
}
</style>
//snip - now the markup notice the hide class
<div id="page1" data-role="page" class="hide">
//all your regular JQM / html form markup
</div>
//snip -- down to the end of /body
<script src="cordova-2.2.0.js"></script>
<script src="js/jquery-1.8.2.min.js"></script>
<script>
document.addEventListener(
'deviceready',
function () {
$(document).one("mobileinit", function () {
//any JQM init methods
});
$.getScript('js/jquery.mobile-1.2.0.min.js');
},
false);
</script>
В вашем редукторе вы ВСЕГДА должны возвращать новый объект, который будет представлять ваше новое состояние. В вашем действии CHANGESTATE
вы не возвращаете объект, вы только возвращаете число (state.data + action.data
). Попробуйте вернуть этот объект:
{ ...state, data: state.data + action.data }
Таким образом, ваш полный case
будет выглядеть так:
case types.CHANGESTATE: {
console.log(state)
return {
...state,
data: state.data + action.data
};
}