我期望状态在道具更改时重新加载,但这不起作用,并且user变量在下次useState调用时不会更新,这是怎么回事?
function Avatar(props) {
const [user, setUser] = React.useState({...props.user});
return user.avatar ?
(<img src={user.avatar}/>)
: (<p>Loading...</p>);
}
Run Code Online (Sandbox Code Playgroud)
我想要什么:
GET / HTTP/1.1(不Connection: upgrade) - 此请求应由RequestMappingHandlerMappingConnection: upgradeGET请求 - 此请求应由...处理ServletWebSocketHandlerRegistry我的Java配置:
@Configuration
@EnableWebSocket
public class WebsocketConfiguration extends WebMvcConfigurationSupport
implements WebSocketConfigurer {
@Bean
WebsocketComponent wsHandler() {
return new WebsocketComponent();
}
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(wsHandler(), "/").setAllowedOrigins("*");
}
}
Run Code Online (Sandbox Code Playgroud)
我的webmvc控制器:
@Controller
public class Status {
@RequestMapping(value = "/", method = RequestMethod.GET)
public String status() {
return "OK";
}
}
Run Code Online (Sandbox Code Playgroud)
问题是 - 当MVC控制器优先时,它总是以HTTP 200响应,从未到达WebSocket处理程序.当WebSocket处理程序具有优先权时 - 它适用于WebSocket客户端,但是当我尝试使用http客户端(浏览器)时,它会响应,Can "Upgrade" only to "WebSocket".
是否有可能以某种方式替换此错误页面并回退到我的MVC映射?任何其他配置,以使我先描述的?
我想构建一个自定义用户界面,以在自定义视图中显示分数,例如带有动画的速度计。实现就像将分数传递给视图,视图中的指针将从 0 动画到传递的分数。背景会根据通过的分数而变化,如果低于 50 为红色,高于 50 为红色。任何人都可以帮助我实现这一点。我附上给出的 ui 供参考。它也可以以任何格式分享到社交媒体。