Reactjs 对外部UI组件使用setState?

Reactjs 对外部UI组件使用setState?,reactjs,react-native,redux,Reactjs,React Native,Redux,我对react相当陌生,目前正在使用react native。我试图创建一个与我的状态管理库分离的组件,无论是redux还是flux,最终我可以公开共享它。我的问题源于这样一个事实,即我目前正在使用redux,但组件本身正在使用this.state和this.setState来保持其内部状态,这看起来像是一种反模式,渲染似乎不起作用。所以我的问题是,如何创建一个不依赖redux、flux等的独立组件。。但能维持内部状态吗?第三方组件通常是如何做到的?我不认为使用组件的状态(this.state)

我对react相当陌生,目前正在使用react native。我试图创建一个与我的状态管理库分离的组件,无论是redux还是flux,最终我可以公开共享它。我的问题源于这样一个事实,即我目前正在使用redux,但组件本身正在使用
this.state
this.setState
来保持其内部状态,这看起来像是一种反模式,渲染似乎不起作用。所以我的问题是,如何创建一个不依赖redux、flux等的独立组件。。但能维持内部状态吗?第三方组件通常是如何做到的?

我不认为使用组件的状态(
this.state
)是一种反模式。事实上,我认为这是组件维护/更新其自身内部状态的正确方式。唯一需要注意的是,更改组件的状态(使用
this.setState
)将触发再次调用
render()
。如果您想更新状态,但不想再次渲染组件,则应覆盖并正确实现组件的
shoudComponentUpdate(nextrops,nextState)
功能

组件更新其状态的原因有很多。例如,我有一个组件具有类似以下内容的
render()
函数:

render() {
    if (this.state.networkError) {
        return <ErrorView />
    } else if (this.state.isLoading) {
        return <Spinner visible={true}/>
    } else {
        return <Text>Success</Text>
    }
}
render(){
if(this.state.networkError){
返回
}else if(this.state.isLoading){
返回
}否则{
回归成功
}
}
因此,基于其当前状态,组件渲染相应的子组件