When I click on the button send data..React shows the data sent by socket.io. What I am trying to do is have the data shown from another app outside of react. I can see that from the server the side it emits the data when using another application, but it doesn't display on react when I try to console.log(). It will only show when i press the button? Its really weird I am not sure why that is happening? Any help would be really appreciated.
Client side
import React, {useEffect, useState} from "react";
import io from "socket.io-client";
import {connect} from 'react-redux';
import {addNewOrder} from '../service/actions';
import {Link} from "react-router-dom";
import _ from "lodash";
let socket ;
function ListOrders ({addNewOrder,orders}) {
   try {
       socket = io("http://localhost:3001");
       socket.on("add_new_order", new_order => {
           console.log(new_order);
           console.log("okk");
           //console.log("called once");
           addNewOrder(new_order);
       });
   } catch (e) {
       console.log(e)
   }
    function SendSocketData(socket) {
        /*
        *
        * Emit is all of a sudden undefined when click on the "Send Data" button second time
        *
        * */
        socket.emit("new_order", new_order => {
        });
    }
   return (
       <div className="App">
          <button onClick={()=>SendSocketData(socket)}>Send Data </button>
           {orders.map((order) =>
                   <Link to={`order_details/${order.id}`}>
                   <div>
                       <div> <b>{order.order_method}</b> </div>
                       <div> <b>{order.full_name}</b> </div>
                   </div>
                   </Link>
           )}
       </div>
   );
}
const mapStateToProps = state => ({
    orders: _.filter(state.orders,{is_confirmed: 0})
})
const mapDispatchToProps = dispatch => {
    return ({
        addNewOrder: (order) => dispatch(addNewOrder(order))
    })
}
/*
*
*
* NOT WORKING WHEN I ADD mapStateToProps
*
* */
export default connect(mapStateToProps,mapDispatchToProps)(ListOrders)
Server side 
const app = require('express')();
const server = require('http').createServer(app);
const io = require('socket.io')(server);
io.on('connection', (socket) => {
    
    //console.log(socket.id,"Connection"); // ojIckSD2jqNzOqIrAGzL
    socket.on("new_order", (arg) => {
       console.log("new_order");
       console.log(["hi"]);
        socket.emit("add_new_order",["hi"]);
    });
 });
server.listen(3001);
