它的方式來取代堆棧中的最後一個場景與newone?像新的場景被動畫推動,並且當推動動畫結束時,更老的是從堆棧靜靜地拖動。 NavigationExperimental StateUtils replaceAt和replaceAtIndex僅在沒有動畫的情況下更改頂部的場景。導航實驗替換場景動畫
2
A
回答
1
有一個在NavigationStateUtils
沒有效用函數,這是否對你,但你必須做的是push
,然後在導航過渡動畫的最後你做一個reset
所有的路線,除了最新的一個前路由。
由於您使用NavigationCardStack
,你所要做的組件上的reset
您使用InteractionManager
因爲NavigationCardStack
does not have a callback prop to call when the transition is finished推動。
下面是一個例子:
// Navigation reducer
function routeReducer(
navigationState = {
routes: [],
index: 0,
},
action,
) {
switch (action.type) {
case 'replaceWithPushAnimation':
// Pass a `reset` flag to your component so it knows to `resetWithoutRoute`
return NavigationStateUtils.push(navigationState, action.route);
case 'resetWithoutRoute':
return NavigationStateUtils.reset(
navigationState,
[
// Copy of all the routes except for navigationState.routes[length - 2]
]);
default:
return navigationState;
}
}
// The component that you pushed
class PushedComponent extends React.Component {
componentDidMount() {
if (this.props.shouldResetWithoutPrevious) {
// This runs after the navigation transition is over
InteractionManager.runAfterInteractions(() => {
// This function calls the reducer to trigger the
// routes reset
this.props.onNavigate({
type: 'resetWithoutRoute',
});
});
}
}
// render() {}
}
如果你不喜歡這種方式,你可以使用NavigationTransitioner
,要做到這has a onTransitionEnd
callback prop的reset
,但是,因爲它是一個低級別的API,你必須實現導航會自行轉換。
+0
你在哪裏將這個值設置爲true代碼this.props.shouldResetWithoutPrevious,顯示時間@rclai –
相關問題
- 1. 使用替換場景導航
- 2. React Native:禁用導航實驗中的場景轉換
- 3. 導航實驗:如何將道具傳遞給場景?
- 4. 動畫背景替換
- 5. 替換導致Cocos2dx崩潰的場景
- 6. 動畫導航控制器轉換沒有動畫導航欄
- 7. JOGL鍵盤導航場景
- 8. 替換場景並停止所有動畫和聲音
- 9. 動畫UIKit項目與場景轉換
- 10. cocos2d中的動畫場景轉換(python)
- 11. iOS導航欄加載動畫背景
- 12. 反應導航 - 動畫,替換屏幕和標籤
- 13. Cocos2d場景切換和替換問題
- 14. 動畫導航欄
- 15. 導航欄動畫
- 16. 動畫UITabBarController導航
- 17. 頁面從cocos2d場景導航到Uiviewcontroller
- 18. Cocos2d遊戲兩個場景之間的替換場景
- 19. +(id)場景在替換場景後未調用
- 20. 滑動動畫導航angularjs
- 21. A-Frame:如何使用場景動畫場景上的物體
- 22. Cocos2d:替換的場景仍然有效
- 23. JSON無法替換XML的場景
- 24. 模擬Cocos2D替換UIKit中的場景
- 25. 如何用RootViewController替換場景?
- 26. 加載完成後替換場景
- 27. 用swift替換Spritekit中的場景
- 28. PowerShell在某些場景中替換CRLF
- 29. JavaFX borderpane.setCenter替換整個場景
- 30. 'NSInvalidArgumentException',原因:' - [MenuScene distance]:替換場景時
你在使用什麼渲染器?正在使用導航卡堆棧還是導航轉換器? – rclai
我使用默認卡堆棧。 – polovi