Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.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 调度不';不要立即更新组件_Javascript_Reactjs_Flux - Fatal编程技术网

Javascript 调度不';不要立即更新组件

Javascript 调度不';不要立即更新组件,javascript,reactjs,flux,Javascript,Reactjs,Flux,作为参考,我遵循教程。我的试用版应用程序是一个用户管理工具。下面当前显示的用户列表是商店代码。它使用dispatcher.dispatch({type:“CREATE_user”,name:“Andrew”})成功地将用户添加到列表中。然而,它不会这样做,直到我点击一条路线,然后它更新 import { EventEmitter } from "events"; import dispatcher from "../Dispatcher"; class UserMan

作为参考,我遵循教程。我的试用版应用程序是一个用户管理工具。下面当前显示的用户列表是商店代码。它使用
dispatcher.dispatch({type:“CREATE_user”,name:“Andrew”})成功地将用户添加到列表中
。然而,它不会这样做,直到我点击一条路线,然后它更新

    import { EventEmitter } from "events";

    import dispatcher from "../Dispatcher";

    class UserManagement extends EventEmitter{
        constructor(){
            super();
            this.users =
                [
                {
                    id: 1234,
                    name: 'Anton',
                    email: 'escalante.anton@outlook.com'
                },
                {
                    id: 12345,
                    name: 'Bacon',
                    email: 'bacon@me.com'
                }
                ];
        }
        getAll(){
            return this.users;
        }
        createUser(name){
            const id = Date.now();
            this.users.push({
                id,
                name,
                email: 'default@email.com'
            });
            this.emit("change");
        }

        handleActions(action){
            switch(action.type){
                case "CREATE_USER":{
                    this.createUser(action.name);
                    break;
                }
            }
        }
    }
    const userobj = new UserManagement;
    dispatcher.register(userobj.handleActions.bind(userobj));
    window.dispatcher = dispatcher;

    export default userobj;

编辑我想我需要触发状态更改?

要重新渲染数据,应通过调用setState或使用forceUpdate强制渲染来触发渲染

请注意,不建议使用forceUpdate,组件读取存储数据的正确方法是将数据复制到状态,并在渲染函数中从此状态读取


要重新渲染数据,应通过调用setState或使用forceUpdate强制渲染来触发渲染

请注意,不建议使用forceUpdate,组件读取存储数据的正确方法是将数据复制到状态,并在渲染函数中从此状态读取


谢谢您的确认。我查看了git repo教程,并查看了代码,我发现了一个setState命令,他没有在视频教程中包含该命令。谢谢你重申我的怀疑,谢谢你的确认。我查看了git repo教程,并查看了代码,我发现了一个setState命令,他没有在视频教程中包含该命令。谢谢你重申我的怀疑。