converting-minikit-to-farcaster by base/skills
npx skills add https://github.com/base/skills --skill converting-minikit-to-farcastersdk.context 是一个 Promise — 必须使用 awaitsdk.isInMiniApp() 不接受参数sdk.actions.setPrimaryButton() 没有 onClick 回调检查版本:npm list @farcaster/miniapp-sdk
| MiniKit | Farcaster SDK | 备注 |
|---|---|---|
useMiniKit().setFrameReady() | await sdk.actions.ready() |
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
useMiniKit().context | await sdk.context | 异步 |
useMiniKit().isSDKLoaded | await sdk.isInMiniApp() | 无参数 |
useClose() | await sdk.actions.close() |
useOpenUrl(url) | await sdk.actions.openUrl(url) |
useViewProfile(fid) | await sdk.actions.viewProfile({ fid }) |
useViewCast(hash) | await sdk.actions.viewCast({ hash }) |
useComposeCast() | await sdk.actions.composeCast({ text, embeds }) |
useAddFrame() | await sdk.actions.addMiniApp() |
usePrimaryButton(opts, cb) | await sdk.actions.setPrimaryButton(opts) | 无回调 |
useAuthenticate() | sdk.quickAuth.getToken() | 参见 AUTH.md |
// 错误示例
const fid = sdk.context?.user?.fid;
// 正确示例
const context = await sdk.context;
const fid = context?.user?.fid;
在 React 组件中,使用状态:
const [context, setContext] = useState(null);
useEffect(() => {
const load = async () => {
const ctx = await sdk.context;
setContext(ctx);
};
load();
}, []);
@coinbase/onchainkit/minikit → @farcaster/miniapp-sdkframe → miniapp — 参见 MANIFEST.md"属性 'user' 在类型 'Promise' 上不存在" → 在访问属性之前使用 await sdk.context
"预期 0 个参数,但得到了 1 个" → 从 sdk.isInMiniApp() 中移除参数
组件中的 Context 为 null → 确保 FrameProvider 在你的 Provider 链中
每周安装次数
89
代码仓库
GitHub 星标数
21
首次出现
14 天前
安全审计
安装于
codex88
opencode87
github-copilot87
kimi-cli87
amp87
gemini-cli87
sdk.context is a Promise — must awaitsdk.isInMiniApp() accepts no parameterssdk.actions.setPrimaryButton() has no onClick callbackCheck version: npm list @farcaster/miniapp-sdk
| MiniKit | Farcaster SDK | Notes |
|---|---|---|
useMiniKit().setFrameReady() | await sdk.actions.ready() | |
useMiniKit().context | await sdk.context | Async |
useMiniKit().isSDKLoaded | await sdk.isInMiniApp() | No params |
useClose() | await sdk.actions.close() | |
useOpenUrl(url) | await sdk.actions.openUrl(url) | |
useViewProfile(fid) | await sdk.actions.viewProfile({ fid }) | |
useViewCast(hash) | await sdk.actions.viewCast({ hash }) | |
useComposeCast() | await sdk.actions.composeCast({ text, embeds }) | |
useAddFrame() | await sdk.actions.addMiniApp() | |
usePrimaryButton(opts, cb) | await sdk.actions.setPrimaryButton(opts) | No callback |
useAuthenticate() | sdk.quickAuth.getToken() | See AUTH.md |
// WRONG
const fid = sdk.context?.user?.fid;
// CORRECT
const context = await sdk.context;
const fid = context?.user?.fid;
In React components, use state:
const [context, setContext] = useState(null);
useEffect(() => {
const load = async () => {
const ctx = await sdk.context;
setContext(ctx);
};
load();
}, []);
@coinbase/onchainkit/minikit → @farcaster/miniapp-sdkframe → miniapp — see MANIFEST.md"Property 'user' does not exist on type 'Promise'" → Await sdk.context before accessing properties
"Expected 0 arguments, but got 1" → Remove parameters from sdk.isInMiniApp()
Context is null in components → Ensure FrameProvider is in your provider chain
Weekly Installs
89
Repository
GitHub Stars
21
First Seen
14 days ago
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
codex88
opencode87
github-copilot87
kimi-cli87
amp87
gemini-cli87
React 组合模式指南:Vercel 组件架构最佳实践,提升代码可维护性
120,000 周安装