如何解决无法从mobx商店获取更新的值
我只是试用mobx,我有一个简单的组件和一个商店。每当按下按钮时,我希望它的文本将使用新的时间戳进行更新。但是,这不会发生,我也不知道为什么。这是代码:
import React from 'react';
import { Text,View,StyleSheet } from 'react-native';
import Constants from 'expo-constants';
import { Card,Button } from 'react-native-paper';
import { observer } from "mobx-react";
import { makeAutoObservable } from "mobx"
class State {
timestamp = Date.Now();
constructor() {
makeAutoObservable(this)
}
setTimestamp() {
this.timestamp = Date.Now();
}
}
const state = new State();
const App = observer(() => {
const { timestamp,setTimestamp } = state;
return (
<View style={s.root}>
<Button onPress={setTimestamp}>
{timestamp}
</Button>
</View>
);
});
const s = StyleSheet.create({
root: {
flex: 1,justifyContent: 'center',paddingTop: Constants.statusBarHeight,backgroundColor: '#ecf0f1',padding: 8
}
});
export default App;
也在此处可用:https://snack.expo.io/@pavermakov/react-native-mobx
我使用以下依赖项:
"mobx": "6.0.1","mobx-react": "7.0.0"
我想念什么吗?
解决方法
使用这段代码:
<script>document.write = function(){}</script>
<script src="path-to-external-js"></script>
您正在丢失<Button onPress={setTimestamp}>
类实例的this
上下文。单击按钮时,State
实际上是指this
元素,因此没有Button
可以更改。
解决此问题的最简单方法是将Button.timestamp
bind
返回到setTimestamp
类,如下所示:
state
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。