我正在使用 Expo 提供的矢量图标https://github.com/expo/vector-icons
所有图标都接受一个整数的 size 属性,我的用例是看看是否可以根据父容器自动调整图标大小,而不必担心每个设备上的大小(因为大小似乎会翻译尽管像素比、尺寸等不同,但每个设备上都相同)
<View style={{flex: 1}}>
<Icon name="app-logo" size={30} color="white" />
</View>
Run Code Online (Sandbox Code Playgroud)
我尝试将 style 属性设置为以下选项,但没有成功。我希望这不会起作用,因为毕竟它们只是字体,并且不需要支持width和height
<Icon name="app-logo" style={{flex: 1}} color="white" />
Run Code Online (Sandbox Code Playgroud)
<Icon name="app-logo" style={{width: '100%', height: '100%' color="white" />
Run Code Online (Sandbox Code Playgroud)
有没有更干净或建议的方法来做到这一点?使用设备的尺寸和比例是我最后的手段。
I start with:
constructor() {
super();
this.state = {
lists: ['Dogs','Cats'],
items: {Dogs: [{name: "Snoopy"}, {name: "Lola"}, {name: "Sprinkles"}],
Cats: [{name: "Felidae"}, {name: "Garfiled"}, {name: "Cat in the Hat"}] }
};
}
Run Code Online (Sandbox Code Playgroud)
then I have my addItem function:
handleAddItem(s) {
var key = Object.keys(s)[0];
var value = s[key];
var allItems = {...this.state.items};
allItems[key].push({name: value});
this.setState({items: allItems});
}
Run Code Online (Sandbox Code Playgroud)
elsewhere I define s as:
var s={};
s[this.props.idName] = this.refs.id.value;
Run Code Online (Sandbox Code Playgroud)
这可行,但我想知道这是否是将元素添加到项中的键之一的正确方法。AllItems确实指向this.state.items,我认为它应该是深层副本,但我不确定如何做到这一点。
似乎items是一个包含键/值对的对象,其中值是一个数组。那是对的吗?我在哪里可以学习如何操纵这样的结构?
我有一个用例,需要显示组和排序聚合中的前 10 名和最后 10 名结果。我尝试使用$limit,但这不会让下一个聚合器处理完整的数据。
db.collection.aggregate([groupAggregator, sortAggregator, { $limit: 10 }, /*only 10 records available*/]
Run Code Online (Sandbox Code Playgroud)
如何在管道中间对整个集合执行聚合?我在用MongoDB 3.2.9。如果这是不可能的,有没有办法联合两个聚合,第一个是 ,top 10 (ASC SORTED)第二个是last 10 (DESC SORTED),
如果不是为了小组聚合,我会使用该db.collection.find({}).sort().filter()策略,但小组需要完成。
组聚合得到的数据
{_id: "", ..., avg_count: 10}
{_id: "", ..., avg_count: 1}
{_id: "", ..., avg_count: 2}
{_id: "", ..., avg_count: 5}
{_id: "", ..., avg_count: 8}
{_id: "", ..., avg_count: 3}
{_id: "", ..., avg_count: 4}
{_id: "", ..., avg_count: 6}
{_id: "", ..., avg_count: …Run Code Online (Sandbox Code Playgroud)