javascript - 在 mapStateToProps 方法上显示的存储属性,但在 redux-dev-tools 上的存储为空
问题描述
当我在 Bugs.js 的第 21 行进行控制台时,它的播种是我不屑一顾的行动结果,但是当我在 li 标签中打印数据时..它是空白的。商店也没有在 redux-dev-tools 中改变
那是我的 App.js 代码
function App() {
const store = configureStore()
return (
<Provider store={store}>
<Bugs />
</Provider>
);
}
export default App;
那是 Bugs.js
const Bugs = (props) => {
useEffect(props.addBug, [])
return (
<ul>
{
props.bugs.map(bug => {
<li>
{bug.description}
</li>
})
}
</ul>
)
}
const mapStateToProps = state => {
console.log('Aftab', state.bugs);
return (
{
bugs: state.bugs
})
}
const mapDispatchToProps = dispatch => {
return (
{
addBug: () => dispatch(addBug({ description: 'Bug 1' }))
}
)
}
export default connect(mapStateToProps, mapDispatchToProps)(Bugs)
那就是减速机
let lastId = 0
const slice = createSlice({
name: 'bugs',
initialState: [],
reducers: {
addBug: (bugs, action) => {
bugs.push({
id: lastId++,
description: action.payload.description,
resolved: false
})
},
resolveBug: (bugs, action) => {
const index = bugs.findIndex(b => b.id === action.payload.id)
bugs[index].resolved = true
},
assignBug: (bugs, action) => {
const index = bugs.findIndex(b => b.id === action.payload.bugId)
bugs[index].userId = action.payload.userId
}
}
})
export const { addBug, resolveBug, assignBug } = slice.actions
export default slice.reducer
export const getBugList = userId => createSelector(
state => state.entities.bugs,
bugs => bugs.filter(b => b.userId === userId)
)
解决方案
您将需要调用该函数以使调度工作
在你的Bugs.js
改变
useEffect(props.addBug, [])
至:
useEffect(props.addBug(), [])
推荐阅读
- android - 通过 rememberSaveable State 编写的 Android Jetpack Compose 无法在后退按钮中存活
- c++ - 错误:使用未声明的标识符“实验性”
- python - 使用 biopython 从 genbank 文件中获取功能时出现 KeyError
- gnuradio - 使用 RTL 和 USRP 进行 DSB 调制/解调
- c# - 防止在文本框上使用多行键输入以防最大长度
- c++ - popper cpp的链接和包含问题
- java-stream - NextFlow: how to use inputStream with DSL2
- api - 获取 Facebook 的 api 以生成缩略图
- flutter - 将多个提供程序添加到根小部件
- python - 按照特定模式替换字符串