2017-10-03 5 views
0

状態遷移が始まる前に、ターゲット状態が何らかの親状態にあるかどうかを確認する必要があります。 MatchCriteriaは次のようになります。UIルータの状態にプロパティが含まれています。プロパティ 'includes'が 'StateDeclaration'タイプに存在しません

this.transition.onStart({ 
    to: function(state) { 
    return state.includes.parentstate; 
    } 
},() => {... 

しかし、私は、私はそれが存在しないconsole.log(state.includes)場合は、エラーがProperty 'includes' does not exist on type 'StateDeclaration'. を言ってもらいます。何か案は?

注:このプロジェクトでは、Angular 4とUI-Routerを使用しています。

答えて

0

これは@uirouter/coreのバグです。コールバックに提供されるオブジェクトはStateObject(通常は内部オブジェクトと見なされます)です。タイピングは、状態を登録するために使用したオブジェクトであるStateDeclarationであると言います。

あなたの関数のパラメータは、下位互換性の理由からany

this.transition.onStart({ 
    to: function(state: any) { 
    return state.includes.parentstate; 
    } 
},() => {... 

として宣言し、このバグを回避するために、私は、UI-ルータの次のリリースは、単にStateObject

を取るためにタイピングを更新すると思います
関連する問題