I have the following structure, and I don't know why it doesn't work.
Concept is transferring data from table to table. My structure is "A table" - "data Center" - "B table".
Here's my "data Center" code first
  const [selectedRows, setSelectedRows] = useState<String[]>([])
  const [transferedRows, setTransferedRows] = useState<String[]>([])
  const onClick = () => {
    onTransfer()
    //it works, when set empty array in here
    // setSelectedRows([])
  }
  const onTransfer = () => {
    const clone = _.cloneDeep(selectedRows)
    const merge = [...clone, ...transferedRows]
    
    restApi.call() //something rest api
    .then((response) => {
        if (response.result) {
          updateState(merge)
        } else {
          throw new Error()
        }
      })
  }
  const updateState = (merge: String[]) => {
    let data = _.cloneDeep(merge)
    data.map(()=>{...})
    
    selectedRows.map((item) => (...))
    setTransferedRows(data)
    //not working here, not update state immediately
    setSelectedRows([])
   }
...
return (
<>
<BTable
      ...
      selectedRows={selectedRows}
      setSelectedRows={setSelectedRows}
/>
</>
BTable code is here
  useEffect(() => {
    if (selectedRows.length === 0) {
      setSelectedRowKeys([])
    }
  }, [selectedRows])
I want to set selectedRows to be empty when onclick event is triggered.
It works when I setSelectedRows([]) on "onclick" function, but doesn't work on "updateState" function.
Anyone can explain why setSelectedRows([]) not working on "updateState" function?
 
    