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

redux 数据更新了 需要2次才会渲染试图 #1798

Closed
zanjs opened this issue Jan 3, 2019 · 5 comments
Closed

redux 数据更新了 需要2次才会渲染试图 #1798

zanjs opened this issue Jan 3, 2019 · 5 comments

Comments

@zanjs
Copy link

zanjs commented Jan 3, 2019

14

点击第一次正常渲染, 点击第二次 没有 渲染, 在点击第三次的时候 渲染 3个列表

Taro v1.2.3
@taro-bot
Copy link

taro-bot bot commented Jan 3, 2019

欢迎提交 Issue~

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

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

Good luck and happy coding~

@luckyadam
Copy link
Member

检查一下你的 reducer 吧

@zanjs
Copy link
Author

zanjs commented Jan 4, 2019

reducer 没问题吧

代码如下
这段代码 视图是不会渲染的

case types.DELETE:
      const MergePicsPath = state.MergePicsPath || []
      MergePicsPath.splice(action.index, 1)
      return {
        ...state,
        MergePicsPath,
      }

修改方案代码如下

case types.DELETE:
      const MergePicsPath = state.MergePicsPath || []
      MergePicsPath.splice(action.index, 1)
      return {
        ...state,
        time: new Date().getTime(),
        MergePicsPath,
      }

return 加 一个 time , 就可以正常渲染试图

MergePicsPath 数据类型是 数组 :

let MergePicsPath = ['https://github.com/NervJS/taro/issues/1798', 'https://zan.com']

@luckyadam
Copy link
Member

case types.DELETE:
      const MergePicsPath = state.MergePicsPath || []
      MergePicsPath.splice(action.index, 1)
      return {
        ...state,
        MergePicsPath,
      }

这个 reducer 有问题,不要直接修改原 state 里的 MergePicsPath 数据,需要把数组浅拷贝一份,你应该这样做

const MergePicsPath = state.MergePicsPath.concat() || []
MergePicsPath.splice(action.index, 1)

@zanjs
Copy link
Author

zanjs commented Jan 4, 2019

Thanks @luckyadam

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

No branches or pull requests

2 participants