Giter Club home page Giter Club logo

Comments (6)

FlynnZhouZz avatar FlynnZhouZz commented on May 24, 2024 1

经历了一整天的摸索(还是排除法最好用),问题终于得到解决了。感谢 @watsonhaw5566 兄弟的指导。

问题原因

导致我出现onShareAppMessage、onShareTimeline并不是官方库的问题,按照官方文档的使用方法是能够正常实现转发和分享至朋友圈功能的。
也不是babel.config.js的presets配置问题。

而我本地失败的原因是两个地方:

  1. 因为在编写组件的时候,有些组件没有引入import React from 'react';,即使你导入和reactReact还是必须要写;

注意,是所有UI组件必须都要导入react

// 正确导入
import React from 'react';
import React, { useEffect, useState } from 'react';

//错误导入
没有导入`react`
import { useEffect, useState } from 'react';
  1. 在我的Container.js组件中使用了hideShareMenu()方法获取页面路由,导致react运行失败。
//Container关键代码
import { View, hideShareMenu } from 'remax/wechat';

...

const [path, setPath] = useState();
useEffect(() => {
    // eslint-disable-next-line no-undef
    const pages = getCurrentPages();
    if (pages && pages?.length > 0) {
        const path = pages?.[pages.length - 1]?.route;
        // 此行代码会产生「错误边界」问题,因此注释了
        // if (!canShare) hideShareMenu?.();
        setPath(path);
    }
}, []);

以上两个因素导致失败的本质原因是程序在运行时,遇到上诉两种错误,产生「错误边界」导致的。

react官方文档说明:React 的内部状态被破坏,并且在下一次渲染时 产生 可能无法追踪的 错误

所以我针对上面两个原因,调整代码后,程序就正常跑通了,开心~
希望能够帮助到遇到同类问题的小伙伴~

from remax.

watsonhaw5566 avatar watsonhaw5566 commented on May 24, 2024

我猜测你配置的 babel preset remax 覆盖了原有的 remax preset ,
remax 的 onShareAppMessage onShareTimeline 是正常运行的, 检查一下自己的 preset 配置。

image

from remax.

FlynnZhouZz avatar FlynnZhouZz commented on May 24, 2024

我猜测你配置的 babel preset remax 覆盖了原有的 remax preset , remax 的 onShareAppMessage onShareTimeline 是正常运行的, 检查一下自己的 preset 配置。

image

image
我就是安装官网的例子配置的,我也不知道哪里出现问题了。我现在都无从下手了~

from remax.

watsonhaw5566 avatar watsonhaw5566 commented on May 24, 2024

移除 babel 的配置,再跑一次

from remax.

FlynnZhouZz avatar FlynnZhouZz commented on May 24, 2024

移除 babel 的配置,再跑一次

移除跑,报下面的错误了

image

from remax.

watsonhaw5566 avatar watsonhaw5566 commented on May 24, 2024

先删除一下 babel.config.js ,删除 dist 目录,再跑一次。

from remax.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.