我正在开发React页面的一部分,我希望文本根据我在本地存储中保存的变量进行更改。以下是代码的一些片段:
Markets.jsx:
_getSelection: function ({ name, odds, url }, index) {
return (
<li key={ index }>
<TouchableLink className="button" href={ url } effectOnClick>
<span>{ name }</span> <span>{ this._getOdds(odds) }</span>
</TouchableLink>
</li>
);
},
_getOdds: function (odds) {
var oddsFormat = this.betStore.getOddsFormat();
return odds && odds[oddsFormat];
},
betStore.js:
getOddsFormat() {
return this._localStorageService.getItem('oddsFormat') || 'fractional';
}
当最初在服务器上呈现时,_getOdds总是返回'fractional',因为那里没有本地存储。然而,在客户端它可以返回其他东西,例如'decimal'但DOM没有更新以反映这一点。为什么是这样?如果我在DOM完成渲染后执行forceUpdate,它会按预期更新。