state and props are used to detect changes to trigger the renderer.
this.setState({ myKey : 'my-String'});
will trigger a chain of functions which in the end will trigger render()
this.state.myKey = 'my-String'; on the other hand will not trigger the rendering
this is the simple answer :) there are people who are much more qualified to answer that :)
oh and to avoid useless rerendering if the state or props did not change I recommend to read
with a dummy component ofc :D