I use StrictMode and it doesn’t bother me that things were running through twice - since it won’t happen in production. The first run will unmount and tear down properly. I guess I don’t see any issues, so if you can point out what the problem is?
You can turn off StrictMode by removing the component from your index.tsx/index.jsx, but it’s designed to help you find issues in your code, which is why it’s added by default to CRA projects.