Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.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_Hyperlink_Components_Setstate - Fatal编程技术网

Javascript 根据通过链接检索的数据修改设置状态

Javascript 根据通过链接检索的数据修改设置状态,javascript,reactjs,hyperlink,components,setstate,Javascript,Reactjs,Hyperlink,Components,Setstate,大家好 我是一个年轻的编程初学者。我正在尝试从链接恢复到另一个组件的数据。除了用setState将恢复的数据放在状态对象中之外,一切都正常。我想我不知道关于setState的所有可能的事情,但我完全迷路了 我有一个发送数据“Command_ID”的链接: 我可以在我的console.log(order\u id)中看到正确的编号,并在链接部分恢复良好的“Command\u id”。但是,当我尝试将其与setState一起放置,并在控制台中查看它是否有效时,我只为this.state.orderI

大家好

我是一个年轻的编程初学者。我正在尝试从链接恢复到另一个组件的数据。除了用setState将恢复的数据放在状态对象中之外,一切都正常。我想我不知道关于setState的所有可能的事情,但我完全迷路了

我有一个发送数据“Command_ID”的链接:

我可以在我的console.log(order\u id)中看到正确的编号,并在链接部分恢复良好的“Command\u id”。但是,当我尝试将其与setState一起放置,并在控制台中查看它是否有效时,我只为this.state.orderID设置了一个未定义的值

感谢您的帮助:)

是异步方法,要在设置状态后执行某些操作,可以将函数作为
setState

this.setState({orderID: order_id}, () => console.log(this.state.orderId));

未定义或空?
setState
是异步的。您拥有的代码执行了您希望的操作,但是第二个console.log命令运行太早,无法显示更改。您可以将它放在回调中:
this.setState({orderID:order_id},函数(){console.log(this.state.orderID);})(该函数将在状态更改后运行)未定义。好的,那么你认为我必须在验证这个值之前先让一点时间?因为这是我第一次遇到这个问题,不是我们“思考”这个问题,而是发生了什么。quote:
setState()并不总是立即更新组件。它可以批处理更新或将更新推迟到以后。这使得在调用setState()后立即读取This.state成为一个潜在的陷阱。
谢谢你说得对,它可以工作!

state = {orderId: null};

     componentDidMount() {
        const  order_id  = this.props.match.params;


        console.log(order_id);
        this.setState({orderID: order_id});
        console.log(this.state.orderID);
    }

this.setState({orderID: order_id}, () => console.log(this.state.orderId));