为什么 作为props.children传入的内容,更改setState之后,页面元素不会根据state重新渲染呢
偶然遇到的问题,很蹊跷。故此记录
【问题】:一段代码(根据state判断页面样式),作为props.children传入父组件。触发这段代码的setState,这段代码的样式没有变化。
【解答】:React中使用props.children传入的内容通常是作为静态内容传递给组件的,这意味着他们不会自动响应组件状态的更改而重新渲染。如果希望props.children根据状态的更改重新渲染,你需要在父组件中将这些内容嵌套在会响应状态变化的组件内部,或者使用React组件内部的状态来动态渲染props.children。
【番外】:
1)props.children 表示组件所有的子节点。在组件内部使用 this.props.children,可以拿到用户在组件里面放置的内容
2)当传入多个子节点时,props.children 是一个存放子节点的数组,可以通过下标访问到子节点,并控制其出现的位置。