reactjs - React - 存储更新但没有重新渲染组件
问题描述
场景是: 1.按下按钮(A 类组件)将项目添加到列表(B 类组件)然后重新渲染表格。
我已经通过 store.getState() 检查了商店中的列表,并且在按下按钮后我已经完美地更新了商店中的列表。
但它没有重新渲染显示列表的表格。
任何人都可以帮忙吗?
初始状态3
var initialState3 = {
products1: [
{
id: "123",
abbreviation: "123",
case_no: "123",
created_dt: "31/01/2018",
last_updated: "11:43:45"
}
]
};
减速机
function ReducersForSeach(state = initialState3, action) {
switch (action.type) {
case "CLICK_SEARCH": {
products1.push({
id: "456",
abbreviation: "456",
case_no: "456",
created_dt: "31/01/2018",
last_updated: "11:43:45"
});
return {
...state,
products1
};
}
}
}
零件
var Table = React.createClass({
render() {
const { products1 } = this.props;
const tableHeaderColumns = columnData.map(column => (
<TableHeaderColumn dataField={column.action} isKey={column.isKey} dataSort={column.dataSort}>
{column.description}
</TableHeaderColumn>
));
return (
<BootstrapTable height="600" style={{ overflowY: "scroll" }} data={products1} options={options}>
{tableHeaderColumns}
</BootstrapTable>
);
}
});
联系
function mapStateToPropsFortable(state) {
return {
products1: state.reducreForSeach.products1
};
}
const Table1 = connect(
mapStateToPropsFortable,
null
)(Table);
ReactDOM.render(
<Provider store={store}>
<Table1 />
</Provider>,
document.getElementById("divReqListTable")
);
店铺
var rootReducer = Redux.combineReducers({
reducreForAge,
reducreForButtonGroup2,
reducreForSeach
});
var store = Redux.createStore(rootReducer);
解决方案
把你的减速机改成这个
function ReducersForSeach(state = initialState3, action) {
switch (action.type) {
case "CLICK_SEARCH": {
const products1 = {
id: "456",
abbreviation: "456",
case_no: "456",
created_dt: "31/01/2018",
last_updated: "11:43:45"
};
return {
...state,
products1: state.products1.concat(products1)
};
}
default:
return state;
}
}
推荐阅读
- php - 在 PHP 中使用多个名称空间请求解析 SOAP
- jenkins - 如何从构建参数中指定的分支中选择 Jenkins 管道文件
- ios - iOS:在 UITextView 的旁白模式下,链接不会出现在转子上
- cocoa - 如何判断是否从 NSComboBox 中的 comboBoxWillDismiss 中选择了项目或取消了菜单?
- python - 哈希无法验证烧瓶管理员
- ios - SwiftUI ButtonStyle 在 iOS 14.4 上忽略 isEnabled 环境变量,适用于 iOS 14.5+
- java - 为什么 JFR 会跳过事件字段
- jquery - 无法控制 jQuery 动画持续时间
- typo3 - TYPO3 9.5:没有名为 TYPO3\CMS\Saltedpasswords\Utility\ExtensionManagerConfigurationUtility 的类
- angular - Java Spring 没有解析 Post 参数