|
- import * as React from 'react';
- import { View } from 'remax/one';
- import store from '../../store/Store';
- import { funGetNewsList } from '../../store/ActionCreator';
- class Shop extends React.Component{
- constructor(props) {
- super(props);
- // 接收所有数据,然后进行过滤,取出新闻的部分
- let allStore = store.getState();
- this.state = allStore;
- this.change = this.change.bind(this);
- this.lmStoreChange = this.lmStoreChange.bind(this);
- this.m =1;
- // console.log( allStore )
- // 当我写在 change 里时,store.subscribe 会产生多个BUG 但是在这里却正常?
- store.subscribe( this.lmStoreChange ) ;
- }
-
- lmStoreChange(){
- this.m++
- console.log(this.m)
- console.log( '进入了lmStoreChange 方法')
- // 接收所有数据,然后进行过滤,取出新闻的部分
- let allStore = store.getState();
- this.setState( allStore );
- }
- // 改变值
- change(){
- store.dispatch( funGetNewsList() );
- console.log('执行了dispatch方法' )
- // 第一次点击时,先执行了 dispatch 未执行subscribe
- // 第二次点击时, 先执行了subscribe ,再执行 change方法
-
- // 最后一步订阅
- // store.subscribe( this.lmStoreChange ) ;
- // store.subscribe( this.lmStoreChange() ); 这样有效果 但是报错
- // store.subscribe(()=>{
- // console.log('进入了subscribe方法')
- // this.lmStoreChange()
- // })
- }
- componentWillUnmount = () => {
- this.setState = (state, callback) => {
- return;
- };
- }
- render(){
- return(
- <View >
- 这是商品界面 { this.state.name }
-
- <View onTap={ this.change } > 点我变 </View>
- </View>
- );
- }
- }
- export default Shop;
复制代码 得出结论:store.subscribe( this.lmStoreChange ) ; 要写在 constructor(props) {} 里 才可以在 remax 微信架构中正常订阅。【 也或许是我本该如此理解,但是老师教错了 】
灵感来源: https://blog.csdn.net/weixin_46041654/article/details/103894759
|
|