Day 31 DEV TOOL

在开发时,总缺少不了 bug 的存在,

那如何 debugger 就是所有开发者都很在意的问题了,

以往开发 web 每个浏览器都会有相应的 devtool,

像我们的 chromesafari ...等,

  • chrome
    https://ithelp.ithome.com.tw/upload/images/20211016/20112878N2lR5Eeaqv.png

  • safari
    https://ithelp.ithome.com.tw/upload/images/20211016/20112878yNSJzHjdjE.png

以原生的介面来说, android & xcode 也是有相应的 devtool,来协助开发者

那...react native 呢?

毕竟它是用 javascript 做开发的,

像很常使用的 console.log 最後会跑到哪边去呢?

以我们启动 react-native run-ios 为例,

会开启一个 terminal 的视窗,

这个就是连接我们专案跟模拟器之间的桥梁

那我们下 的 console.log 指令,也会显示在这上面,

以程序码为例,在 render 这里下一个 console.log 指令,

https://ithelp.ithome.com.tw/upload/images/20211016/20112878lmfnVHdth3.png

其结果如下,

https://ithelp.ithome.com.tw/upload/images/20211016/20112878Stu9ym3iM3.png

看上去好像不错,

但是,只要资讯量一多....

https://ithelp.ithome.com.tw/upload/images/20211016/20112878sVOWrUwmpk.png

想找资料就会变得非常....开心,

有别的办法嘛?

有~

iosCommand + D & android 则是 Command + M 可以开启开发者选单

https://ithelp.ithome.com.tw/upload/images/20211016/201128783zGGuMVmHk.png

我们选择 Debug with Chrome

它会跳出一个网页,

https://ithelp.ithome.com.tw/upload/images/20211016/20112878hCGVBMieNG.png

我们开启这个网页的 devtool,

就会发现,

react-native 的资讯转移到这里了!!

https://ithelp.ithome.com.tw/upload/images/20211016/201128786oq2b5LYwC.png

那关於画面的部份呢?

像是 web 那样可以看画面的长宽高之类的,

刚刚的 devtool 有办法侦测到嘛?

很可惜... 没办法...

那有办法嘛?

有~~

一样在模拟器开启开发者选单

选择 Show Inspector

https://ithelp.ithome.com.tw/upload/images/20211016/20112878WI6j0VEeRc.png

可以看到最下方出现一个区块,

当我们点击其中一个元件,

Show Inspector

下方区块马上显示其中的 component 的资讯,

这些就是在 react native 里最基本的 debugger,

那我想看 redux 的资讯呢??

有~~~

还是有办法的,

接下来介绍的是集 UI + console 讯息 + redux 为一体的,

react-native-debugger !!

官方 Github

安装:

brew install --cask react-native-debugger

mac 可以用 Spoilt 搜寻 react-native-debugger,

https://ithelp.ithome.com.tw/upload/images/20211016/20112878uLzF9s835d.png

打开後画面:

https://ithelp.ithome.com.tw/upload/images/20211016/20112878sM8MLiRcAr.png

如何连上呢?

就打开 Debug with Chrome

https://ithelp.ithome.com.tw/upload/images/20211016/20112878AOJMg4moZe.png

左上是 redux 管理 、 左下是整个 react component 结构、 右边就是 console 讯息

整整齐齐都在上面了,

不过会发现, redux 好像没反应阿...

我们要在 configureStore 上加上 composeEnhancers

import { applyMiddleware, compose, createStore } from 'redux';
import thunk from 'redux-thunk';
import rootReducer from '../reducer';

export default function configureStore() {
  const composeEnhancers =
    window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
  return createStore(rootReducer, composeEnhancers(applyMiddleware(thunk)));
}

这样 devtool 就能连接到 redux 了,

RESULT


<<:  用 Python 畅玩 Line bot - 12:MongoDB 安装与建立 database

>>:  Day31 ATT&CK for ICS - Inhibit Response Function(3)

我们的基因体时代-AI, Data和生物资讯 Day18-基因变异的档案格式VCF

上一篇我们的基因体时代-AI, Data和生物资讯 Day17-分析定序档案格式SAM, BAM的工...

[DAY 28] _看门狗简介_视窗看门狗(2)

昨天主要介绍了视窗看门狗和独立看门狗的差别,今天来看这如何计算,这计算方式再参考手册里面有举例说明,...

[第17天]理财达人Mx. Ada-股款交割

前言 本文说明查询帐户股款交割资讯。 程序实作 程序 # 股款交割 settlements =api...

从 IT 技术面细说 Search Console 的 27 组数字 KPI (9) :连结 - 外部连结

Google 每次公告都一直强调连结不重要,但每次都会抓乱连结的网站,且花很多心力叫网站 no-f...

第三十一天:铁人赛的参与心得:选择比努力更重要-选择的初衷

回想之前在某家公司,人资在公司新人训送给大家的一句话:「选择比努力还重要」 当时的我一直无法体会这句...