Try to never use HashRouter. On webpack use the property historyApiFallback: true and use BrowserRouter instead of HashRouter.
We need to add a loader on Webpack to say how it gonna manipulate json.
We want to take an array and transform it in some other array, So we can use .map.
Best practics in React is best practics in JS.
Key property use it for performance reason and help React for that. Try to never use the index of the array..Instead, use an id or something that is unique.
Use forceUpdate only when you need. For example to use with third party libraries like jQuery or D3