我需要创建component/file/class
无论如何并将其连接到redux store
我不需要渲染这个组件
它只是一个帮助组件,可以包含从商店返回值的方法
我试图创建一个文件:
export function getKeyFromReduxStore(key:string) {...
但这只是一个导出功能的文件,我无法(或者不知道)如何将其连接到redux商店。
我的所有组件都与商店连接:
<RouterWithRedux>
<Scene key="root">...
但正如我所说,这不是一个场景,它只是帮助组件,我想通过整个应用程序重复使用。
如何制作这样的组件并将其连接到redux?
答案 0 :(得分:2)
Redux商店有一个名为getState
的方法,它获取商店的状态。您可以在需要redux store的文件中导入您创建的商店。
// in the file where you created your store
import { createStore } from 'redux';
export const myStore = createStore(
// ... some middleware or reducer etc
)
// in your component/file/class
import { myStore } from '../path/to/store'
export function getKeyFromReduxStore(key:string) {
return (myStore.getState())[key];
}
或者,您可以将商店传递给getKeyFromReduxStore
函数,并在存储可用的react组件中调用它。例如,在mapStateToProps
函数中:
// component/file/class
export function getKeyFromReduxStore(store, key) {
return store[key];
}
// react component with access to store
import { getKeyFromReduxStore } from '../path/to/file';
class MyKlass extends Component {
// ... your logic
render() {
const val = this.props.getKey(someVal);
}
}
const mapStateToProps = (state) => ({
getKey: (key) => getKeyFromReduxStore(store, key),
})
export default connect(mapStateToProps)(MyKlass);