-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
小程序中使用装饰器,报没有_createData错误, h5端正常 #5009
Comments
CC @Chen-jj |
欢迎提交 Issue~ 如果你提交的是 bug 报告,请务必遵循 Issue 模板的规范,尽量用简洁的语言描述你的问题,最好能提供一个稳定简单的复现。🙏🙏🙏 如果你的信息提供过于模糊或不足,或者已经其他 issue 已经存在相关内容,你的 issue 有可能会被关闭。 Good luck and happy coding~ |
PS 我都 写state 为啥给我 warning 说我没写state?? |
第一种尝试import Taro, { Component } from "@tarojs/taro";
import { View, Text } from "@tarojs/components";
import testDecorator from "./testDecorator";
@testDecorator
class TestPage extends Component {
constructor(props) {
super(props);
this.state = {}; // 写在这里试试看?
}
render() {
return (
<View>
<Text>test page</Text>
<Text>装饰器添加的属性---{this.props.test}</Text>
</View>
);
}
}
export default TestPage; 第二个细节在testDecorateor.js里面,不要出现 import Taro, { Component } from "@tarojs/taro";
import { View, Text } from "@tarojs/components";
const testDecorator = Comp =>
class extends Component {
render() {
return (
<View>
<Text>装饰器添加的</Text>
<Comp test='test_111111'></Comp>
</View>
);
}
};
export default testDecorator; 第三个细节你可以看看我这里写的,
|
Hello~ 您的问题楼上已经有了确切的回答,如果没有更多的问题这个 issue 将在 15 天后被自动关闭。 如果您在这 15 天中更新更多信息自动关闭的流程会自动取消,如有其他问题也可以发起新的 Issue。 Good luck and happy coding~ |
发现导致报_createdata错误的原因是,我继承的是 taro中的component。
|
@waveheart 目前高阶函数不能劫持 render 方法。render 会在编译时被识别出来编译成 createData 函数,HOC 里的 render 编译器识别不出来,因此会有问题。 |
同样的问题 ,导致问题就是h5实现的装饰器 完全没有办法用到小程序 |
@shenghanqin 能帮忙解释下您说的 |
问题描述
尝试在小程序中写自定义的装饰器,本来是想对获取列表的东西封装一下,但是发现我以前写装饰器的方式在小程序中报错,但是在h5端正常
复现步骤
新建 index.jsx , testDecarator.js
2.
正常使用@装饰
3.
小程序端报错,装饰器无效,h5端正常
index.jsx
testDecorateor.js
期望行为
小程序端正常使用装饰器
报错信息
系统信息
Taro CLI 1.3.25 environment info:
System:
OS: Windows 10
Binaries:
Node: 10.15.0 - C:\Program Files\nodejs\node.EXE
Yarn: C:\Users\Administrator\Documents\react\myApp>"node" "C:\Users\Administrator\AppData\Roaming\npm\node_modules\yarn\bin\yarn.js" -v
1.17.3 - ~\AppData\Roaming\npm\yarn.CMD
npm: 6.4.1 - C:\Program Files\nodejs\npm.CMD
补充信息
我的装饰器使用的不对么???但是在h5端一切正常啊
更新
有没有一个Taro装饰器的demo给看一下?
The text was updated successfully, but these errors were encountered: