amazeui-touch icon indicating copy to clipboard operation
amazeui-touch copied to clipboard

在使用amazeui和react-router3.0配合的时候组件会渲染两次

Open medz opened this issue 8 years ago • 10 comments

https://github.com/ReactTraining/react-router/issues/4183 上面的地址是我去react-router提交的issues,我不知道这个是react-router的问题还是amazeui-touch的问题。 我升级到3。0后根据 #112 中你们的提交记录修改了入口的component的。附上我的代码: qq20161114-2 2x 望回复~真的很急。。。

medz avatar Nov 14 '16 10:11 medz

下面注销的代码是因为使用专场动画,在转场的时候,久页面也会重新render一次,你们的回复是不使用转场动画,可否给一个能使用转场动画,但是不会在转场的时候重新渲染一次久组件的方法?

medz avatar Nov 14 '16 10:11 medz

@windcbf @wjn161 @zhang-z @minwe @huangzhipeng

medz avatar Nov 14 '16 10:11 medz

3.0 没有 key 这个属性了,改成别的不就不会渲染两次了吗?https://github.com/amazeui/amazeui-touch/blob/a8f18ffa76953b7d6c7696a767240a8152c3bedd/kitchen-sink/components/App.js#L24

minwe avatar Nov 14 '16 14:11 minwe

@minwe 是的,render会执行两次,我打印this.props.location中,status分别是push,然后是pop。我就是按照这个文件修改的~设置的是pathname

medz avatar Nov 14 '16 14:11 medz

@minwe 现在不确定的是react-router的原因还是amazeui的原因,所以我在两边都提了issues。

medz avatar Nov 14 '16 14:11 medz

@minwe 对了。我使用了react-redux这个组件了的~会不会和配合这个组件有关?我看你们的示例没用组合这个,希望能加入,嘿嘿。

medz avatar Nov 14 '16 14:11 medz

我们用 [email protected] 的时候也有渲染两次的问题,不过我们没有用 amazeui 。

初步怀疑是 react-router 依赖的 history 的问题

https://github.com/mjackson/history/blob/v3.2.1/modules/HashProtocol.js#L66

longtian avatar Nov 16 '16 11:11 longtian

@wyvernnot 嗯嗯,的确,我测试的也是,render函数会执行两次,第一次是push或者replace,第二次是pop状态。

medz avatar Nov 16 '16 12:11 medz

@medz 我用browserHistory就沒事了~

kdenz avatar Dec 09 '16 17:12 kdenz

@medz 这个问题是怎么解决的?

bennettdong avatar Jun 18 '18 20:06 bennettdong