Проект не рендерится, когда mapStateToProps обновляется, а реквизиты не принимаются в компоненте проекта, и если он использует combreducers, он работает, но без combreducers проект не рендерит
reducer.js
Это мой редуктор, в котором я поддерживалсостояние, но оно обновляется здесь, но в компоненте проекта обновляется состояние рендеринга
export const initialState={
rows:[],
projectformvalue:{
projectname:"",
companyname:"",
description:"",
estimationcost:"",
},
tabledisplay:false,
open:true,
}
const reducer=(state=initialState,action)=>{
const newState={...state};
if(action.type==='CHANGE'){
return {...state, projectformvalue:{...state.projectformvalue, [action.payload.name]:action.payload.value}}
}
else if(action.type==='SAVE'){
let temp = state.rows;
console.log(state.projectformvalue);
temp.push(state.projectformvalue);
return {...state, "rows": temp}
//newState.rows.push({ ...newState.projectformvalue});
}
return newState;
}
export default reducer;
project.js
import React,{Component}from 'react';
import Actions from './Actions';
import {connect} from 'react-redux';
class Project extends Component{
render(){
let {rows} = this.props.states;
console.log(rows);
return(
<div className="employeeRegister">
<Actions/>
<table>
<thead>
<tr>
<th>Project Name</th>
<th>Company Name</th>
<th>Description Name</th>
<th>Estimation Cost</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
{rows.map(tablerows=>{
return (
<tr key={Math.random()}>
<td>{tablerows.projectname}</td>
<td>{tablerows.companyname}</td>
<td>{tablerows.description}</td>
<td>{tablerows.estimationcost}</td>
<td>
<button onClick={()=>this.props.handleEdit()}>Edit</button>
</td>
</tr>
)
})}
</tbody>
</table>
</div>
)
}
}
const mapStateToProps=(state)=>{
console.log(state);
return { states:state.rows }
}
export default connect(mapStateToProps)(Project);