如果两个相邻的组件想要使用相同的state去渲染组件,要实现一个组件内部的逻辑更改state也会让相邻组件的ui更改,就需要使用'状态提升'了,原理就是把model提升到离他们最近的公共父组件中,通过props传递给子组件, 但是遇到一个问题,因为props是不应该被改变的,在子组件中无法通过setState控制他们.
一种方法是,父组件不仅在props中传递数据,同时把handler也传递进来,通过子组件调用props.handler来修改父组件的state.从而触发父组件的render来达到重新渲染子组件
原则:如果一个组件的数据放在props或者state都可以的话,那他就不应该放到state中