react-native - 在测试中触发顶部栏按钮

标签 react-native react-native-navigation

我正在尝试使用 react-native-testing-library 测试屏幕上的导航事件。

我正在使用 Navigation.events().registerNavigationButtonPressedListener 在我的功能组件中使用以下 Hook 全局监听事件:

const useTopBarBtnPress = function (
    componentId: string,
    onTopBtnPressed: OnTopBtnPressed) {
    useEffect(() => {
        const topBtnListener = Navigation.events().registerNavigationButtonPressedListener((event) => {
            if (event.componentId === componentId)
                onTopBtnPressed(event, BtnIds)
        })
        return () => topBtnListener.remove()
    }, [onTopBtnPressed])
}

是否可以为测试模拟一个 topBar 按钮?我想使用 testID 但我在文档中找不到它。
或者我需要模拟 registerNavigationButtonPressedListener 吗?还是使用排毒?

另外,有没有办法测试布局? (例如图标颜色)

最佳答案

无需实际模拟 TopBar 按钮来测试 navigationButtonPressed。只需使用模拟按钮按下的正确 NavigationButtonPressedEvent 参数自行调用 navigationButtonPressed

关于react-native - 在测试中触发顶部栏按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63053137/

相关文章:

ios - 无法与 lrettig 的 react-native-stripe 模块链接

react-native - 使用一个对象跟踪 UI 元素状态,但一旦离开屏幕并返回,状态不会保留

reactjs - React Native, "setState() on unmounted component"警告

javascript - react native : Having an issue calling a function of a parent component from a child

javascript - React Native iOS 构建错误 - 检查类的渲染方法

react-native - wix-react-native-navigation v2 statusBar 不工作

react-native-navigation - 有没有办法禁用顶部栏中的右键?

javascript - React-Native-Navigation - 在选项卡更改时触发事件

android - React Native map 加载位置

android - 如何在 React Native 中实现类似 CoordinatorLayout 的功能?