要使用 TypeScript 启动一个新的 Create React App 项目,您可以运行:
npx create-react-app my-app --template typescript
yarn create react-app my-app --template typescript
确保将 react、react-dom 和moralis 安装为依赖项。然后安装 react-moralis:
npm install moralis-v1 react-moralis
yarn add moralis-v1 react-moralis
您将看到以下代码:
import React from "react";
import ReactDOM from "react-dom";
import "./index.css";
import App from "./App";
import reportWebVitals from "./reportWebVitals";
ReactDOM.render(
<React.StrictMode>
<App />
</React.StrictMode>,
document.getElementById("root")
);
在您的项目中导入 Moralis Provider 并添加 <MoralisProvider> 组件,如下所示
import React from "react";
import ReactDOM from "react-dom";
import "./index.css";
import App from "./App";
import reportWebVitals from "./reportWebVitals";
import { MoralisProvider } from "react-moralis";
ReactDOM.render(
<React.StrictMode>
<MoralisProvider serverUrl="https://xxxxx/server" appId="YOUR_APP_ID">
<App />
</MoralisProvider>
</React.StrictMode>,
document.getElementById("root")
);
您可以从 Moralis Dashboard 获取服务器 (Dapp) URL 和 APP ID。转到您的 Moralis 仪表板,然后单击服务器名称旁边的查看详细信息。
单击服务器名称下方的设置。
现在 SDK 已成功连接,我们可以使用 Moralis 的强大功能。让我们登录一个用户并立即从您的 Moralis 数据库中的所有链获取他们的所有代币、交易和 NFT。
在 App.tsx 中调用应用程序内的 useMoralis 钩子,输入以下代码:
import React, { useEffect } from "react";
import logo from "./logo.svg";
import "./App.css";
import { useMoralis } from "react-moralis";
function App() {
const { authenticate, isAuthenticated, isAuthenticating, user, account, logout } = useMoralis();
useEffect(() => {
if (isAuthenticated) {
// add your logic here
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [isAuthenticated]);
const login = async () => {
if (!isAuthenticated) {
await authenticate({signingMessage: "Log in using Moralis" })
.then(function (user) {
console.log("logged in user:", user);
console.log(user!.get("ethAddress"));
})
.catch(function (error) {
console.log(error);
});
}
}
const logOut = async () => {
await logout();
console.log("logged out");
}
return (
<div>
<h1>Moralis Hello World!</h1>
<button onClick={login}>Moralis Metamask Login</button>
<button onClick={logOut} disabled={isAuthenticating}>Logout</button>
</div>
);
}
export default App;
在 package.json 所在的项目目录中使用以下命令在 localhost 上运行您的应用程序
npm start
yarn start
访问网页并单击登录。您的 Metamask 将弹出并要求您登录。
一旦用户登录 Moralis,就会从所有链中获取有关该用户的所有链上数据,并将其放入 Moralis 数据库。要查看 Moralis 数据库,请转到您的服务器并单击仪表板。
单击仪表板后,您将看到该服务器的数据库。 Moralis 从用户地址处于活动状态的所有区块链中获取数据,您可以在一个数据库中查看和查询用户的所有代币、NFT 和过去的交易。
Moralis 数据库从所有链中获取所有用户数据并实时更新,以防用户在链上移动资产。
尝试移动 Metamask 钱包中的资产,并观察 Moralis 数据库如何实时更新记录。
您可以使用Impala的Union子句组合两个查询的结果。 语法以下是Impala中的Union子句的语法。 query1 union query2...
数据存储管理指导开发者基于 HarmonyOS 进行存储设备(包含本地存储、SD 卡、U 盘等)的数据存储管理能力的开发,包括获取存储设...
场景介绍通常在汽车使用过程中,驾驶员需要设置仪表屏亮度、时间单位等参数,将电台、音乐等娱乐数据或导航数据显示在仪表屏上,...
分布式数据服务(Distributed Data Service,DDS) 为应用程序提供不同设备间数据库数据分布式的能力。通过调用分布式数据接口,...
Attrpublic interface Attr获取属性值。Attr 接口包含支持属性值设计需要实现的方法集。 Attr 对象在 AttrSet 中用于在构造函数...
Component.ScrolledListenerpublic static interface Component.ScrolledListener提供从组件分派滚动事件时要调用的回调。方法总...
SearchBar.QueryListenerpublic static interface SearchBar.QueryListener提供当用户更改查询文本或用户提交查询时要调用的回调...
在本章中,我们将讨论如何将Apache Kafka与Spark Streaming API集成。关于SparkSpark Streaming API支持实时数据流的可扩展,高...
EventChannel基础库 2.7.3 开始支持,低版本需做兼容处理。页面间事件通信通道方法:EventChannel.emit(string eventName, any a...