用户可以在我的应用中共享图片。这可以通过长按列表项或单击详细信息屏幕中的按钮来完成,该按钮在单击列表项后显示。
对于rows(list-items),我有一个自己的容器和详细信息屏幕。
我应该在哪里放置共享逻辑?共享可以替换为我在应用程序中使用的任何其他操作而不会影响redux商店。
目前我看到三个选项:
动作,中间件,助手类?
但最好的方法是什么?
答案 0 :(得分:0)
我现在正在做的是我有一个BaseComponent扩展了正常的React Native组件,然后我让所有其他组件扩展我的BaseComponent而不是常规RN组件。
通过这种方式,我可以共享我通常使用的功能,例如获取合成样式,对链接,弹出窗口等操作做出反应。
如果您有很多属于特定类别的代码/函数,那么是的,我创建另一个Helper,BaseComponent保存对该帮助程序的引用。
所以,当我需要它时,我知道我可以调用类似this.getHelper()的东西,任何组件都可以访问该帮助器或函数。
答案 1 :(得分:-1)
您应该将它们放在 高阶组件(HOC) 中,并使用它来装饰具有这些功能的组件。
@shareable
class ImageItem extend React.Component {
render() {
const {handleShare} = this.props // injected by @shareable
const {imgSrc} = this.props
return(
<div>
<img src={imgSrc}/>
<button onClick={handleShare}>Share</button>
</div>
)
}
}
这种反应模式非常适合为组件创建可重用的数据/行为模型。