[求助] React WebSocket Stomp 后端返回不能实时显示

qwertty01:单独调用 addLog 是可以实时显示的
但是调用 connect 和 sendMessage 时,不能实时显示必须点击一下才能显示出来
能不能用 useEffect ?

export const WebSocketPage = () => {
    const [log, setLog] = useState([])
    const [stompClient, setStompClient] = useState(null)


    const connect = () => {
        const socket = new SockJS(WEB_SOCKET_URL)
        const stompClient = Stomp.over(socket)
        stompClient.connect({}, function (frame) {
            setStompClient(stompClient)
            addLog(frame)
            stompClient.subscribe("/topic/greeting", function (greeting) {
                addLog(JSON.parse(greeting.body).content)
            })
        })
    }

    const sendMessage = () => {
        if (stompClient !== null) {
            stompClient.send("/app/hello", {}, JSON.stringify({"name": "Hello World!"}))
            addLog("send message: /app/hello", JSON.stringify({"name": "Hello World"}))
        }
    }

    const addLog = (message) => {
        setLog(prevState => {
            let current = prevState;
            console.log(current)
            current.push(message.toString())
            return current
        })
    }


    return (
        <div>
            
                <Button value="connection" onClick={connect} label="Connect"/>
                <Button label="Send Message" onClick={sendMessage}/>
                <Button label="Add Log" onClick={() => addLog(1)}/>
                    <pre>
                        {log.map((value, index) => <div key={index}>{value}</div>)}
                    </pre>
        </div>
    );
}
[求助] 用户查询商品时,应该怎么排除没有权限的商品?

liubx: 业务的逻辑是,为用户分配品牌。用户搜索商品,只能搜索出对应品牌的商品。 我现在的做法是: 先查出用户有品牌权限的商品集合。然后查询时条件带上 in(goodsList)。 这种做法,效率太低了。请问有什么好的思路吗? zzw252:启用或登录时返回用户信息中带上权限集合,请求商品列表时回传权限集给后端?

求助,我的 wordpress 独立博客被人像素级复制了! 昨天做了各种防护今天发现文章还是被复制抄袭了

dustin2016:我的原创个人博客 https://dsx2016.com/ 盗版博客(怀疑是镜像,但是好像爬虫) http://www.nizuochu.com/ 参考昨天我写的的防盗文章 https://dsx2016.com/?p=1246 <<大师兄-wordpress 博客网站被镜像或像素级复制>> 本文原创博客为:ht…

求助 卸载 packageinstaller 之后怎么通过 adb 安装软件

Misakas:手机是 Vivo 用 pm uninstall 卸载 com.android.packageinstaller 之后用 pm install 重新启用,安装软件失败,adb 提示错误信息 INSTALL_FAILED_INTERNAL_ERROR 求知道的 v 友们支个招,怎么能在这种情况下安装软件

从Java React Native调用JavaScript方法 - java

我是React Native的新手,但想知道是否可以从Java调用React Native JavaScript方法?我有一个带有物理按钮的小众设备,当我按下该按钮时,我想使用它来触发方法。我已经看到以下插件https://github.com/artemyarulin/react-native-eval,但是Android实现似乎已过时。我已经四处搜寻,但…

跨python套接字将JSON传递给Javascript - javascript

我正在使用python套接字与JavaScript客户端进行通信。http://docs.python.org/2/library/socket.html然后遵循JavaScript代码的一部分,ws = new WebSocket("ws://localhost:7777/"); ws.onopen = function(){ aler…