由于 JSX 中的写法千变万化,我们不能支持到所有的 JSX 写法,同时由于微信小程序端的限制,也有部分 JSX 的优秀用法暂时不能得到很好地支持,特在此补充说明一下对于 JSX 的支持程度:
- 不能使用 Array#map 之外的方法操作 JSX 数组
- 暂不支持在 render() 之外的方法定义 JSX (自 v1.3.0-beta.0 起支持)
- 不能在 JSX 参数中使用对象展开符 (自 v1.3.0-beta.0 起,自定义组件可以使用对象展开符,内置组件仍然需要分别单独传入参数)
- 不支持无状态组件 (自 v1.3.0-beta.0 起支持)
以上的规则在 Taro 默认生成的模板都有 ESLint 检测,无需做任何配置。如果你的编辑器没有安装 ESLint 插件可以参考以下教程在你的编辑器安装:
默认情况下 Taro 的编译器也会对无法运行的代码进行警告,当没有调用栈信息时代码是可以生成的。如果你需要在编译时禁用掉 ESLint 检查,可以在命令前加入 ESLINT=false
参数,例如:
$ ESLINT=false taro build --type weapp --watch