美文网首页
RN小白笔记

RN小白笔记

作者: revert | 来源:发表于2018-03-11 00:11 被阅读36次
  1. 关闭ios模拟器中恼人的警告弹窗

在 index.js 中加入一行代码

console.disableYellowBox = true;

  1. 在Chrome中查看网络请求

在index.js(ts)中加入以下代码(chrome需要进行跨域设置

if (__DEV__) { GLOBAL.XMLHttpRequest = GLOBAL.originalXMLHttpRequest || GLOBAL.XMLHttpRequest }

  1. vs code设置支持Tab键代码补全设置项

"emmet.triggerExpansionOnTab": true,
"emmet.includeLanguages": { "javascript": "javascriptreact" }

可补全标签

  1. react native中如果配置了.env,在其中添加配置项时reloadjs是取不到值的,需要重新执行react-native run-ios或者react-native run-android 来重启服务
  2. react-navigation 返回并传递参数的方法

   navigate('Detail', {
        // 跳转的时候携带一个参数去下个页面
          callback: (data) => {
              console.log(data); // 打印值为:'回调参数'
          }
        });
const {navigate,goBack,state} = this.props.navigation;
// 在第二个页面,在goBack之前,将上个页面的方法取到,并回传参数,这样回传的参数会重走render方法
state.params.callback('回调参数');
goBack();
  1. async 函数的断点调试方法

  • 第一种 在需要打断点的地方debugger


    debugger
  • 第二种 利用vscode的调试功能


    vscode
  1. 创建无状态组件(Stateless Functional Component)

当组件本身只是用来展示,所有数据都是通过props传入的时候,我们便可以使用Stateless Functional Component来快速创建组件。例如下面代码所示:

import React from 'react';
const Button = ({
  day,
  increment //传入的函数
}) => {
  return (
    <div>
      <button onClick={increment}>Today is {day}</button>
    </div>
  )
}

Button.propTypes = {
  day: PropTypes.string.isRequired,
  increment: PropTypes.func.isRequired,
}

这种组件,没有自身的状态,相同的props输入,必然会获得完全相同的组件展示。因为不需要关心组件的一些生命周期函数和渲染的钩子,所以不用继承自Component显得更简洁。

  1. 组件的条件渲染注意点

根据条件来确定是否渲染React元素时,只有变量为true时才会渲染。例如:

<div>
  {showHeader && <Header />}
  <Content />
</div>

上面的JSX只会在showHeader为true时渲染<Header />组件。

值得注意的是,JavaScript 中的一些 “falsy” 值(比如数字0),它们依然会被渲染。例如,下面的代码不会像你预期的那样运行,因为当 props.message 为空数组时,它会打印0:

<div>
  {props.messages.length &&
    <MessageList messages={props.messages} />
  }
</div>

要解决这个问题,请确保 && 前面的表达式始终为布尔值:

<div>
  {props.messages.length > 0 &&
    <MessageList messages={props.messages} />
  }
</div>

相反,如果你想让类似 falsetruenullundefined 出现在输出中,你必须先把它转换成字符串 :

<div>
  My JavaScript variable is {String(myVariable)}.
</div>

相关文章

  • RN小白笔记

    关闭ios模拟器中恼人的警告弹窗 在 index.js 中加入一行代码 console.disableYellow...

  • 生信分析学习笔记 - RNAseq (一) 前传

    声明:本文部分内容和部分图片来源于网络。本文为生信小白学习笔记,不能保证专业名词和内容全部正确或权威。 RN...

  • ncRNA互作文献阅读笔记(一)——Interactions a

    本文为文献阅读笔记文献:Interactions and links among the noncoding RN...

  • RN笔记

  • Rn笔记

    创建项目: react-native init 项目名 运行项目:右击项目,选择在终端打开,输入命令:npm st...

  • RN笔记

    1、点击空白处收起键盘,在组件最外层加上 即可 2、使用阿里的提示插件,@ant-design/react-n...

  • RN笔记

    1、VSCode 代码格式化 2、Chrome 调试

  • React-Native学习笔记

    RN笔记 一. 常用命令 比如我们希望查看RN的所有历史版本,可以在命令行中输入: npm view react-...

  • RN学习笔记

    环境搭建: 安装npm和Node.js,Node.js下载地址 安装watchMan,该插件用于监控bug文件和文...

  • RN笔记—SectionList

    SectionList 是一个高性能的分组列表组件。它可以简单的给一组数据进行分组渲染,它支持一下的功能: 完全跨...

网友评论

      本文标题:RN小白笔记

      本文链接:https://www.haomeiwen.com/subject/xhlifftx.html