Skip to content
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

render() 函数中, 使用 switch判断条件 赋值 jsx 变量不生效, if 可以 #1275

Closed
everywan opened this issue Nov 28, 2018 · 6 comments
Assignees
Labels
enhancement New feature or request good first issue Good for newcomers

Comments

@everywan
Copy link

everywan commented Nov 28, 2018


问题描述
开发支付宝小程序时, 在自定义组件中, render() 函数中使用 switch 判断然后动态给jsx:element变量赋值, 然后 在页面显示该变量失败. 但是改用if判断就可以显示. 原因是最后生成的 支付宝 的 .amxl 文件中, 使用 switch 不会转化产生 <block a:if="{{TestType == TestType.direct}}"></block><view a:else>default</view>

复现步骤
[复现问题的步骤]

render() {
  let body: JSX.Element;
  switch (this.props.testType) {
    case testType.direct: {
      body = (<View>testBody</View>)
      break;
    }
    default: {
      body = (<View>default</View>)
    }
  }
  // if (this.props.testType == testType.direct) {
  //   body = (<View >testBody</View>)
  // } else {
  //   body = (<View>default</View>)
  // }

  return (
    <View>
      {body}
    </View>
  );
}

期望行为
期望使用 switch 时, 也可以自动转换为条件判断, 产生
<View a:if="{{...}}"></View>

由于不清楚 是否是小程序(支付宝/微信) 不支持使用 switch 条件渲染的原因, 所以希望

  1. 如果小程序支持: 麻烦各位大牛考虑下支持?
  2. 如果小程序不支持: 能否添加 switch 条件判断在生成的文件中转换为 a:if 显示?

报错信息
无报错, 仅在生成的小程序文件中不生效.

系统信息

  • 操作系统: 64bit Mac OS X 10.14 18A391
  • Taro 版本: v1.1.7
  • Node.js 版本: v6.4.1
  • 报错平台: 支付宝小程序, 微信小程序未测试

补充信息
如上, 最终生成的 小程序 .axml文件存在问题. 原因可能是 小程序/taro 不支持 switch 中对 jsx:element 的赋值, 或者 其他原因.

最后: 因为我主要做后端开发, 对前端(react/taro/小程序)了解不多, 难免有些地方说的不对或者不全, 请见谅.

@taro-bot
Copy link

taro-bot bot commented Nov 28, 2018

欢迎提交 Issue~

如果你提交的是 bug 报告,请务必遵循 Issue 模板的规范,尽量用简洁的语言描述你的问题,最好能提供一个稳定简单的复现。🙏🙏🙏

如果你的信息提供过于模糊或不足,或者已经其他 issue 已经存在相关内容,你的 issue 有可能会被关闭。

Good luck and happy coding~

@luckyadam
Copy link
Member

目前 switch case 还不支持

@taro-bot
Copy link

taro-bot bot commented Nov 28, 2018

CC @yuche

@taro-bot taro-bot bot assigned yuche Nov 28, 2018
@luckyadam luckyadam added the enhancement New feature or request label Nov 28, 2018
@everywan
Copy link
Author

了解. 我暂时先用if吧. 多谢~

@yuche yuche added the good first issue Good for newcomers label Nov 28, 2018
@yuche
Copy link
Contributor

yuche commented Nov 28, 2018

本来我不打算支持 switch-case 的,但是你的 issue 提得好,有理有据,令人信服。

那还是支持一把吧。

@everywan
Copy link
Author

大佬说得对

wechatimg2-min

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

3 participants