所以基本上我得到了这个套接字,它工作正常,向我发送“新订单”消息。
我正在使用 redux,我想分派一个动作,而不是减速器会得到它并且我的商店会被更新。但这段代码没有做任何事情!
socket.on('new order', (order) => {
return (dispatch) => {
dispatch(socketNewOrder(order));
}
});
Run Code Online (Sandbox Code Playgroud)
这是我的操作,它位于同一个文件中:
export const socketNewOrder = (order) => {
return {
type: 'SOCKET_NEW_ORDER',
payload: order
}
}
Run Code Online (Sandbox Code Playgroud)
我也试着这样称呼我的行动:
socket.on('new order', (order) => {
socketNewOrder(order));
});
Run Code Online (Sandbox Code Playgroud)
它确实调用了动作,但我的减速器没有“听到”动作!:(
我听说了一些关于使用中间件的消息,但我就是不知道如何去做。
谁能解释我如何在接收套接字消息时使用中间件来调度操作,以及为什么我的代码不起作用?感谢和抱歉新手问题
所以,大家好,基本上我正在使用react,我想通过props获取父div的高度,并使它的孩子具有相同的高度。每次调整窗口大小时,父div都会渲染。我尝试使用componentDidMount和setState获取父级的高度,但componentDidMount仅在父级div第一次渲染时才被调用。
而且我不能使用ReactDOM.findDOMNode(this).clientHeight内部render()函数。
为简化起见,这些步骤如下:
有任何想法吗?
这是一段代码:
import React, { Component } from 'react';
import Div2 from './Div2';
class Div1 extends Component {
constructor(props){
super(props);
this.state = {
height: 0
};
}
componentDidMount() {
var height = (ReactDOM.findDOMNode(this).clientHeight);
this.setState({height: height})
}
render() {
return(
<div className='Div1'>
<Div2 height={this.state.height}/>
</div>
);
}
}
export default Div1;
Run Code Online (Sandbox Code Playgroud)