React Native Web не отображается при использовании Mobx React - PullRequest
0 голосов
/ 01 ноября 2019

Я использую React Native 0.60 и Mobx, но обнаружил, что Mobx-React не обновлял реквизиты компонентов после завершения действий Mobx;

Вот мой код:

Store.js

class Store {
    @observable test = 1;

    @action.bound
    updateValue() {
        console.log('update')
        this.test = this.test + 1;
    }

}

export default new Store();

index.js

import React, { Component } from 'react';
import { Provider } from 'mobx-react';
import Store from './Store';
import VipCashierContainer from './VipCashierContainer';

class VipCashier extends Component {
    render() {
        return (
            <Provider
                test={Store.test}
                updateValue={Store.updateValue}
            >
                <VipCashierContainer/>
            </Provider>
        )
    }
}

export default VipCashier;

VipCashierContainer

/*
 * @Author: zhenxi.gzx 
 * @Date: 2019-08-28 10:22:31 
 * @Last Modified by: zhenxi.gzx
 * @Last Modified time: 2019-11-01 20:30:28
 */

import React, { Component } from 'react';
import { inject, observer } from 'mobx-react';
import { View, ScrollView, StyleSheet,TouchableWithoutFeedback, Text } from 'react-native';

@inject('updateValue', 'test')
@observer
class VipCashierContainer extends Component {
    onPress = () => {
        this.props.updateValue();
    }
    render() {
        console.log('this.props', this.props);
        return (
            <View style={styles.wrapper}>
                <ScrollView style={styles.vipCashier}>
                    <TouchableWithoutFeedback onPress={this.onPress.bind(this)}>
                        <View><Text>Update{this.props.test}</Text></View>
                    </TouchableWithoutFeedback>
                </ScrollView>
            </View>
        )
    }
}

export default VipCashierContainer;

ЧтоЯ пришел к выводу, что я действительно обновляю данные наблюдений , но реквизиты компонента React все еще имеют старое значение , поэтому он никогда не вызовет рендеринг компонента, что со мной не так?

Вот мои Зависимости

  "dependencies": {
    "mobx": "^5.14.2",
    "mobx-react": "^6.1.4",
    "react": "16.8.6",
    "react-art": "16.8.6",
    "react-dom": "16.8.6",
    "react-native": "^0.55.4",
    "react-native-web": "^0.11.7"
  },
...