具有组合数据的 Redux
Redux with combined data
我正在使用 web3,它包括从智能合约和其他库获取数据的连接。最后我创建了 2 个切片
- 1 个智能合约切片,从循环供应等智能合约中获取数据
- 1 个价格数据切片
然后在应用程序的许多页面中,我使用一个称为“MarketCap”的指标,它是价格数据之间的计算
:
marketCap = circulatingSupply * price
在根组件中,我这样做了:
...
useEffect(() => {
dispatch(initializeProviderContracts({ networkID: chainID, provider }));
dispatch(getBlockchainData(provider));
dispatch(getMarketPrices());
}, [connected]);
...
我对每个组件都这样做:
比较
const component = () => {
// get the states
const price = useSelector(state => state.market.price);
const circulatingSupply = useSelector(state => state.contracts.token.circulatingSupply);
const marketCap = price * circulatingSupply; // Done several times
}
我在 Redux 中找不到任何关于此的提示,最好的方法是什么?我是否需要创建另一个像 metrics
这样的切片并添加一个额外的调度程序?
useEffect(() => {
dispatch(initializeProviderContracts({ networkID: chainID, provider }));
dispatch(getBlockchainData(provider));
dispatch(getMarketPrices());
dispatch(computeMetrics()); // could be used to compute marketCap here
}, [connected]);
还有这些类型的 redux 操作的名称吗?
谢谢!
对于派生值,使用选择器。
// somewhere
export const selectMarketCap = state => state.market.price * state.contracts.token.circulatingSupply;
// in your component
const marketCap = useSelector(selectMarketCap);
我正在使用 web3,它包括从智能合约和其他库获取数据的连接。最后我创建了 2 个切片
- 1 个智能合约切片,从循环供应等智能合约中获取数据
- 1 个价格数据切片
然后在应用程序的许多页面中,我使用一个称为“MarketCap”的指标,它是价格数据之间的计算 :
marketCap = circulatingSupply * price
在根组件中,我这样做了:
...
useEffect(() => {
dispatch(initializeProviderContracts({ networkID: chainID, provider }));
dispatch(getBlockchainData(provider));
dispatch(getMarketPrices());
}, [connected]);
...
我对每个组件都这样做:
比较
const component = () => {
// get the states
const price = useSelector(state => state.market.price);
const circulatingSupply = useSelector(state => state.contracts.token.circulatingSupply);
const marketCap = price * circulatingSupply; // Done several times
}
我在 Redux 中找不到任何关于此的提示,最好的方法是什么?我是否需要创建另一个像 metrics
这样的切片并添加一个额外的调度程序?
useEffect(() => {
dispatch(initializeProviderContracts({ networkID: chainID, provider }));
dispatch(getBlockchainData(provider));
dispatch(getMarketPrices());
dispatch(computeMetrics()); // could be used to compute marketCap here
}, [connected]);
还有这些类型的 redux 操作的名称吗?
谢谢!
对于派生值,使用选择器。
// somewhere
export const selectMarketCap = state => state.market.price * state.contracts.token.circulatingSupply;
// in your component
const marketCap = useSelector(selectMarketCap);