Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript redux中的更新状态_Javascript_Reactjs_Redux - Fatal编程技术网

Javascript redux中的更新状态

Javascript redux中的更新状态,javascript,reactjs,redux,Javascript,Reactjs,Redux,我正在尝试在redux中更新我的状态。但我对如何做到这一点一无所知: 以下是组件: import React from 'react'; import {connect} from 'react-redux'; import fetchTasks from '../actions/getTasks'; class Homepage extends React.Component{ componentDidMount(){ this.props.fetchtsk();

我正在尝试在redux中更新我的状态。但我对如何做到这一点一无所知:

以下是组件:

import React from 'react';
import {connect} from 'react-redux';
import fetchTasks from '../actions/getTasks';

class Homepage extends React.Component{
    componentDidMount(){
        this.props.fetchtsk();
    }
    render(){
        return(
            <div>
                <h1>Welcome to My Task-Manager Page</h1>
                <input type='text' placeholder='insert task'></input>
                <button value='insert task'>Insert task</button>
                <h3>Here are the tasks:</h3>
                <h4>Unchecked:</h4>
                {this.props.root.map((item,index)=>{
                    if(item.isChecked===0)
                        return (<div><span key={index}>{item.data}</span><input type='checkbox' onClick={()=>this.props.changeCheck(item.InsertionId)}></input></div>)
                    return '';
                })}
                <h4>Checked:</h4>
                {this.props.root.map((item,index)=>{
                    if(item.isChecked===1)
                        return (<div><span key={index}>{item.data}</span><input type='checkbox' checked="checked" onClick={()=>this.props.changeCheck(item.InsertionId)}></input></div>)
                    return '';
                })}
            </div>
        )
    }
}
const matchStatetoProps = (state) =>{
    return {root:state.root};
}

const dispatchStatetoProps = (dispatch) =>{
    return{
        fetchtsk:()=> dispatch(fetchTasks),
        changeCheck: (InsertionId)=> dispatch({type:'CHANGECHK',payload:InsertionId})
    }
}

export default connect(matchStatetoProps,dispatchStatetoProps)(Homepage);

有人能帮我吗?

嗨,它正在改变所有数据的状态。你能调查一下吗?不调查细节很难说什么。您是否尝试过调试它并检查它发生的原因?所有元素的“InsertionId”都不同吗?它在美国存在吗?它是否作为有效负载正确地传递给rootReducer?可能的重复虽然dupe目标寻址组件的状态,但对于Redux状态,它是相同的更新代码。
case 'CHANGECHK':
    return state.map( i => i.InsertionId === payload ? { ...i, isChecked: 1 } : i );
case 'CHANGECHK':
    return state.map( i => i.InsertionId === payload ? { ...i, isChecked: 1 } : i );