前提说明,通过本篇博客你可以知道Provider的selector选择器的作用以及其工作原理。读过博主Flutter跨组件共享状态的利器Provider简析(1)这篇博客的读者对下面这幅图应该不陌生,这幅图描述了Provider组件的工作原理。 我们可以通过
Provider.of
来获取DataBean
对象,进而获取DataBean
里面封装的数据。如果DataBean这个类封装的字段过多,而我们只需要一部分怎么办呢?比如一个Person
的类,封装了诸如name
、age
,sex
,job
等各种各样的信息,我们只需要展示name
信息。就要使用Provider.of().name
,感觉有点冗余,有没有更合适的工具直接获取name
呢?有,答案就是selector
选择器,代码如下: