要在不使用react-redux订阅商店的特定部分的情况下解决问题,可以使用React的上下文API。上下文提供了一种将数据传递给组件树中任何层级的方法,而不必通过props进行逐层传递。
下面是一个示例代码,演示了如何使用上下文API来访问和更新Redux存储的特定部分:
import React from 'react';
const StoreContext = React.createContext();
export default StoreContext;
import React from 'react';
import StoreContext from './storeContext';
import store from './yourReduxStore';
const App = () => {
return (
{/* Your app components */}
);
};
export default App;
import React, { useContext } from 'react';
import StoreContext from './storeContext';
const MyComponent = () => {
const store = useContext(StoreContext);
const specificData = store.getState().specificData; // 获取特定部分
// 更新特定部分的示例方法
const updateSpecificData = (newData) => {
store.dispatch({ type: 'UPDATE_SPECIFIC_DATA', payload: newData });
};
return (
{/* 你的组件内容 */}
);
};
export default MyComponent;
通过使用上下文API,你可以在不使用react-redux订阅商店的特定部分的情况下,访问和更新Redux存储的特定部分。请注意,这种方法可能会导致组件重新渲染的性能问题,因为它无法利用react-redux提供的优化措施,例如选择器和浅层比较。但是,如果你只需要访问或更新存储的特定部分,并且不需要利用react-redux的高级功能,那么这种方法可能是适合你的解决方案。