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

carousel did not support custom dot styles #1146

Closed
qingtong234 opened this issue Apr 13, 2017 · 17 comments
Closed

carousel did not support custom dot styles #1146

qingtong234 opened this issue Apr 13, 2017 · 17 comments
Assignees

Comments

@qingtong234
Copy link

qingtong234 commented Apr 13, 2017

RN组件carousel不支持自定义dot样式呀。
pagination里面有定义Styles,但是carousel里面没有传递styles。。。。

else if (mode === 'pointer') {
      const arr: any = [];
      for (let i = 0; i < total; i++) {
        arr.push(
          <View
            key={`dot-${i}`}
            style={[ styles.pointStyle, styles.spaceStyle, i === current && styles.pointActiveStyle ]}
          />,
        );

以下是pagination代码:

 <Pagination
        style={[styles.pagination, styles[positionStyle]]}
        indicatorStyle={{ flexDirection }}
        current={index}
        mode="pointer"
        total={count}
      />
@silentcloud
Copy link
Contributor

RN ? @qingtong234

@qingtong234
Copy link
Author

@silentcloud 是的

@silentcloud silentcloud self-assigned this Apr 14, 2017
@warmhug warmhug added the RN label Apr 14, 2017
@silentcloud
Copy link
Contributor

silentcloud commented Apr 14, 2017

@qingtong234 你可以先暂时写一个类似这样的脚本 https://github.com/ant-design/antd-mobile-samples/blob/master/rn-custom-ui/scripts/custom-rn-theme.js
在 start server 前动态修改 pagination 的 style/index.js 里的样式文件来解决

@qingtong234
Copy link
Author

@silentcloud 后续可以什么时候实现,这样做本地开发么问题,但是rn打包不支持

@paranoidjk
Copy link
Contributor

@qingtong234 为什么不支持?没看太懂,这里不是把props.style传下去了么? https://github.com/ant-design/ant-design-mobile/blob/master/components/carousel/index.tsx#L233

@qingtong234
Copy link
Author

@paranoidjk 注意在carousel里面传递的是style属性,而在pagination里面接收的是styles属性,所以pagination里面永远收不到style

@silentcloud
Copy link
Contributor

silentcloud commented Apr 14, 2017

这个要改的话,需要 RN Carousel 支持传入自定义 pagination,不然就算给内置的开一个 xxxStyle 的属性也没办法完全自定义的,除非 Pagination 将大部分样式开放 @qingtong234 ,比如 Pagination 的 activeTextStyletotalStyle, pointStyle, pointActiveStyle 太多了,还是用脚本动态改最好,不会 build 不行的

@paranoidjk
Copy link
Contributor

@silentcloud 我倾向于 【RN Carousel 支持传入自定义 pagination】,传 React.Element 自由度更大,实现成本也更低。

@silentcloud
Copy link
Contributor

@paranoidjk 我也是这个想法

@paranoidjk
Copy link
Contributor

@silentcloud 但是这里可能要做成 HOC 的形式,因为 会有个类似 activeCarouselIndex 的 props

@paranoidjk
Copy link
Contributor

@silentcloud
Copy link
Contributor

silentcloud commented Apr 14, 2017

恩, renderDots props 就行了,就两个参数,index 和 count,然后用户将自己自定义的 Pagination render 过来就好

@silentcloud
Copy link
Contributor

@qingtong234 打包没问题的,在打包前覆盖就行了,后面要改也是放再 1.1 里的

@silentcloud silentcloud added this to the 1.1 milestone Apr 14, 2017
@paranoidjk paranoidjk modified the milestones: 1.2.0, 1.1.0 Apr 21, 2017
@qingtong234
Copy link
Author

@paranoidjk 1.1并没有支持,请问1.2发布计划是什么时候

@silentcloud
Copy link
Contributor

@qingtong234 这个是个增强功能,只是新增了个 api,随后的 1.1.x 就发了,不用等 1.2了
cc @paranoidjk

@paranoidjk
Copy link
Contributor

@silentcloud 合掉了,RN 没那么大业务包袱。我们尽量还是严格 semver。

@paranoidjk paranoidjk removed this from the 1.2.0 milestone May 5, 2017
lixiaoyang1992 pushed a commit to lixiaoyang1992/ant-design-mobile that referenced this issue Apr 26, 2018
@muhlishp33
Copy link

muhlishp33 commented Apr 8, 2019

you can use dotStyle or dotActiveStyle in your Carousel Prop

<Carousel
autoplay
autoplayInterval={5000}
infinite
dotStyle={{marginBottom: 45}}
dotActiveStyle={}

//images
Carousel>

thx

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants