javascript - 为什么连接的 react-redux 组件不能作为正常功能工作,而是作为反应子组件工作?
问题描述
我正在尝试创建一个外部功能组件,它不需要返回任何 JSX,而只需要将一些内部 React 状态发送到 Redux 存储。为了保持App.js
清洁,我试图在外部文件中执行此操作。出于某种原因,下面的代码(其中ChromeStoreToReduxStore
呈现为子组件)不会引发错误。
ChromeStoreToReduxStore.js
import { connect } from 'react-redux';
import * as actions from '../popupRedux/actions'
function ChromeStoreToReduxStore (props) {
console.log(props)
return null
}
export default connect(null, actions)(ChromeStoreToReduxStore);
应用程序.js
function App (props) {
//state to keep track of local chrome store
const [chromeStore, updateChromeStore] = useState({})
...
console.log(ChromeStoreToReduxStore)
...
return (
<div className="App">
<ChromeStoreToReduxStore chromeStore = {chromeStore} />
</div>
);
}
export default App
但是,App.js
像下面这样调用组件会出现以下错误:TypeError: ChromeStoreToReduxStore is not a function
//whenever local store state changes send to redux store
useEffect(() => {
ChromeStoreToReduxStore(chromeStore);
}, [chromeStore])
下面console.log
显示它似乎是一个反应备忘录。谁能解释为什么我不能connect
像普通函数一样调用这个函数,以及为什么它似乎必须被渲染为一个 React 子?
我知道我可以连接到里面的商店,App.js
但想知道为什么上述方法不起作用。
解决方案
推荐阅读
- android - 使用 MvvmCross 构建的 Xamarin Android 应用在 3-4 天后从后台恢复时卡在初始屏幕上
- observable - .isDisposed() 结果的冲突答案
- javascript - 我无法将数据保存到我的 mongodb Atlas 数据库
- excel - 使用电子邮件任务附加 excel 文件的 ssis 包
- ios - 有时在我的 dataTask 中处理我的请求时出错
- java - 如何确保在 JUnit5 中引发特定异常?
- javascript - HTML 5:在鼠标单击位置从画布中删除颜色
- r - R中的自动编码(总和)
- entity-framework-6 - 种子方法不填充表
- c++ - 在 C++ 中以编程方式使用 rsync