1、爷爷组件向父亲组件、孙子组件传递数据:通过属性注册一层层的传递
2、孙子组件操作爷爷组件数据
注:ToDoWrapper为爷爷组件、TodoList为父亲组件、ToDoItem为孙子组件
方案一:在父组件定义函数,通过属性传递将函数传递给子组件,子组件调用父组件调用的函数
方案二:React.createContext()-React16版本之后
原理:Provider作为数据/状态的提供者、Consumer作为数据的接受者,由Provider直接提供给Consumer不需要中间层
注:ToDoWrapper为Provider、ToDoItem为Consumer