2023-03-01 react-native 实现 复制功能 @react-native-community/clipboard 报错:TypeError: null is not an object (evaluating 'NativeClipboard_1.default.setString')。
我的react-native(下称rn)版本为0.68,要实现这个功能主要用到rn的clipboard,在21年的时候他就已经提示clipboard会在未来的版本中上去掉,官方的建议是不要再从react-native引入,而实替换为@react-native-community/clipboard,实现方法详见下面:
1.安装clipboard模块:
yarn add @react-native-community/clipboard
2.在项目中使用:
import Clipboard from "@react-native-community/clipboard"; ··· // 复制事件(需要绑定到button中)
const handleClick = (e) => {
console.log(e);
Clipboard.setString(e)
ToastAndroid.showWithGravityAndOffset(
"内容已复制到剪贴板",
ToastAndroid.LONG,
ToastAndroid.CENTER,
25,
70
);
}
这时候你点击按钮,按钮触发Clipboard,报错:TypeError: null is not an object (evaluating 'NativeClipboard_1.default.setString')。
这是由于你还需要在android包做一些配置,详见下面:
3.打开项目名\android\app\build.gradle,并在里面添加如下代码:
dependencies {
implementation project(':@react-native-community-clipboard') // 添加这行代码
...
}
4.打开项目名\android\app\src\main\java\com\app\MainApplication.java,并在里面添加如下代码:
import com.reactnativecommunity.clipboard.ClipboardPackage; // 添加这行代码
public class MainApplication extends Application implements ReactApplication { ...
5.打开项目名\android\settings.gradle,并在里面添加如下代码:
include ':@react-native-community-clipboard'
project(':@react-native-community-clipboard').projectDir = new File(rootProject.projectDir, '../node_modules/@react-native-community/clipboard/android')
6.最重要的一步,卸载现在的版本,重新打包。
最后:第3、4、5步你可以不做,我也不知道这3步是否有效,我是按别人的操作来执行的,我也成功实现了该功能,我建议你报错(TypeError: null is not an object (evaluating 'NativeClipboard_1.default.setString')。)后直接卸载app,然后重新打包看效果,如果没有效果,那就执行3、4、5步骤。
2023-03-01 react-native 实现 复制功能 @react-native-community/clipboard 报错:TypeError: null is not an object (evaluating 'NativeClipboard_1.default.setString')。的更多相关文章
- react爬坑之路(一)--报错output.path不是绝对路径
之前,一直在纠结是学习angular好,学习vue好,还是学习react好,网上一搜索,也是各种对比,各种互喷,看过之后更纠结.就跟小时候一样纠结长大了是上清华好,还是上北大好,最后证明我想多了.总之 ...
- 【已解决】React项目中按需引入ant-design报错TypeError: injectBabelPlugin is not a function
react项目中ant-design按需加载,使用react-app-rewired的时候报错 运行npm start或者yarn start报如下错误: TypeError: injectBabel ...
- react报错 TypeError: Cannot read property 'setState' of undefined
代码如下: class test extends Component { constructor(props) { super(props); this.state = { liked: false ...
- React Native在虚拟运行app时,报错RCTRootView not found,怎么解决?
报错: 解决方案:
- react+typescript报错集锦<持续更新>
typescript报错集锦 错误:Import sources within a group must be alphabetized.tslint(ordered-imports) 原因:impo ...
- 【React Native开发】React Native控件之ProgressBarAndroid进度条解说(12)
),React Native技术交流4群(458982758).请不要反复加群! 欢迎各位大牛,React Native技术爱好者增加交流!同一时候博客左側欢迎微信扫描关注订阅号,移动技术干货,精彩文 ...
- react native-调用react-native-fs插件时,如果数据的接口是需要验证信息的,在android上运行报错
调用react-native-fs插件时,如果数据的接口是需要验证信息的,在android上运行报错,而在iOS上运行没问题.原因是因为接口是有验证信息的,而调用这个插件时没有传入,在iOS上会自动加 ...
- React Native 系列(二) -- React入门知识
前言 本系列是基于React Native版本号0.44.3写的,最初学习React Native的时候,完全没有接触过React和JS,本文的目的是为了给那些JS和React小白提供一个快速入门,让 ...
- React-Native(三):React Native是基于React设计的
React Native是基于React js设计的. 参考:<React 入门实例教程> React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript ...
- 【问题与解决】Mac OS通过 npm 安装 React Native 报错(checkPermissions Missing write access to /usr/local/lib/node_modules)
报错情况: 当Mac OS通过 npm 安装 React Native 报错,警告文字为:checkPermissions Missing write access to /usr/local/lib ...
随机推荐
- Linux xsync命令脚本
功能:在主机上分发文件到其他机器 在主机machine136上进行如下操作(master) 1.安装 rsync yum install -y rsync 2.bin下创建 xsync 转自:(82条 ...
- mysql03-默认的几个数据库
https://blog.csdn.net/dj673344908/article/details/80482844 1.查看mysql默认的数据库 在安装好mysql后,登录mysql,执行语句:s ...
- P19_数据绑定
数据绑定 数据绑定的基本原则 在 data 中定义数据 在 WXML 中使用数据 在 data 中定义页面的数据 在页面对应的 .js 文件中,把数据定义到 data 对象中即可: Mustache ...
- imax6开发版_挂载NFS文件系统
挂载:mount -o vers=4 192.168.30.108:/home/penuel/linux_imax6/workdir /home/root/workdir 取消挂载:umount /h ...
- 2.11-12 滴水new-delete-vector(动态数组编写)
去长沙玩了几天,没学 1.new 与 delete 通过调用分析了解到new在堆区开辟数据 delete就是释放数据 案例 #include<stdio.h> #include <m ...
- Vue-cli混入、elementUI的使用、vue-router、Vuex
目录 混入.elementUI的使用.vue-router.Vuex 一.Vue项目改成比较纯净的状态及props其他使用 1.Vue项目改成纯净的项目 2.props的其他使用 二.混入(mixin ...
- ctfshow-web入门-SSTI学习
千万要仔细,不要拼错单词 千万要仔细,不要拼错单词 千万要仔细,不要拼错单词 web 361 payload name={{[].__class__.__base__.__subclasses__() ...
- 李超树学习笔记 & JZOJ 5039. 【NOI2017模拟4.2】查询题解
李超树 它本质上是线段树的拓展运用 解决的问题:平面直角坐标系中,支持插入线段,问 \(x = x_0\) 这条直线上最大的 \(y\) 值 它维护的东西很奇特:优势线段 何为"优势线段&q ...
- JZOJ 6799. 【2014广州市选day2】game
题目 思路 呵呵,正解并不是什么神奇的方法 而是最原始的最粗暴的最有用的最万能的----搜索 依题模拟即可 \(Code\) #include<cstdio> #include<cs ...
- ViT简述【Transformer】
目录 结构概述 图像切patch Patch0 Position Embedding Multi-Head Attention 代码[Pytorch] Transformer在NLP任务中表现很好,但 ...