2017-02-28 1 views
0

저는 Router5를 사용하여 매우 기본적인 클라이언트 (즉, 본질적으로 웹 사이트)를 만들고 있습니다. 사용자가 단추를 클릭 할 때 원하지 않는 요소가 숨겨 지도록 코드가 설정되어 있습니다 (클래스 hidden이 추가됨). 나타나는 요소에 hidden 클래스가 제거되었습니다. 훌륭하게 작동합니다. 그러나 내가 index이 아닌 상태에 있고 새로 고침하면 index 상태의 요소가 다시 나타납니다.Router5에서 뷰 상태를 새로 고칠 때 다른 뷰의 일부가 다시 나타납니다.

디버깅 목적으로 콘솔을 조사했습니다. 새로 고침 할 때 색인보기의 hidden 클래스가 실제로 제거되고 그 이유가 확실하지 않습니다.

저는 코딩에 비교적 익숙하므로 도움을받을 수있는 도움이 있으면 대단히 감사하겠습니다.

이것은 나의 이행 코드입니다. 내가 말했듯, 내가 다른 하나 개의보기에서거야 때 작동하지만이 index 요소 중 하나가 다시, index하지 않은보기를 새로 고칠 때 :

const transition = function() { 
    return (toState, fromState, done) => { 
    if (fromState) { 
     $(`#${fromState.name}`).addClass('hidden'); 
    } 

    $(`#${toState.name}`).removeClass('hidden'); 

    done(); 
    }; 
}; 

기타 관련 코드 :

const routes = router.rootNode.children.map((route) => { 
    return route.name; 
}); 

const registerPaths =() => { 
    routes.forEach((route) => { 
    $(`a[href="#${route}"]`).on('click', (event) => { 
     event.preventDefault(); 

     router.navigate(route); 
    }); 
    }); 
}; 


$(document).ready(function() { 
    require('./router/index').start(); 
    require('./router/events').registerPaths(); 
}); 

나는 그것이 전부라고 생각한다. 도움을 받으려면 다른 코드가 필요한지 알려주십시오.

감사합니다.

답변

0

DEFAULT 뷰 상태조차도 HTML에 .hidden 클래스가 있어야한다는 것이 문제였습니다. 나는 아직도 라우터에 대해 더 많이 배우고있다!

관련 문제