在我的React Native应用程序的标题中,我有一个条件图标和一个Searchbar。
static navigationOptions = ({ navigation }) => {
const { params = {} } = navigation.state;
return {
headerTitle: (
<View
style={{
flex: 1,
backgroundColor: Platform.OS === 'ios' ? '#e54b4d' : '',
alignItems: 'center',
flexDirection: 'row',
paddingHorizontal: 10,
height: StatusBar.currentHeight,
}}>
{params.isIconTriggered && <Icon name="chevron-left" size={28} />}
<SearchBar
round
platform={'default'}
placeholder="Search"
containerStyle={{
flex: 1,
backgroundColor: 'transparent',
}}
/>
</View>
),
headerStyle: {
backgroundColor: '#e54b4d',
},
};
};
Run Code Online (Sandbox Code Playgroud)
通常,搜索栏将采用标题的全部宽度,这正是我想要的。如果isIconTriggered为真,则图标将出现在搜索栏的前面,并且搜索栏的宽度将缩小到足以使其旁边可见的程度。
但是,发生这种情况时没有过渡或动画,并且感觉也不好。我想在搜索栏中添加动画,以便在触发条件并显示图标时,宽度逐渐平滑地缩小。
那有可能实现吗,我该如何实现呢?
我有如下地图:
let map = new Map();
map.set("a", 1);
//Map is now {'a' => 1}
Run Code Online (Sandbox Code Playgroud)
我想将值更改a为2,或将其递增:map.get("a")++;
目前,我正在使用以下内容:
map.set("a", (map.get("a"))+1);
Run Code Online (Sandbox Code Playgroud)
但是,这感觉不对。有谁知道一种更清洁的方式?可能吗?
我在Ionic中使用以下插件来可视化图像:@ ionic-native / photo-viewer。
调用可视化方法时:
PhotoViewer.show('http://my_site.com/my_image.jpg', 'Optional Title', {share: true});
一切都能在Android设备/模拟器上按预期工作。但是,当尝试在使用iOS设备/模拟器时调用相同的方法时,该应用程序完全崩溃,甚至无法可视化图像。这些是应用程序崩溃时的日志:
2018-07-30 21:20:05.706360+0100 MyApp[23373:2960263] THREAD WARNING:
['PhotoViewer'] took '25.631104' ms. Plugin should use a background thread.
2018-07-30 21:20:06.442060+0100 MyApp[23373:2961920] * Assertion failure in -[UIDocumentInteractionController setURL:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3698.54.4/Source/DocumentInteraction/UIDocumentInteractionController.m:183
2018-07-30 21:20:06.453089+0100 MyApp[23373:2961920] * Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'UIDocumentInteractionController: invalid scheme https. Only the file scheme is supported.'
* First throw call stack:
(
0 CoreFoundation 0x00000001115b71e6 __exceptionPreprocess + 294
1 libobjc.A.dylib 0x00000001104b8031 objc_exception_throw + 48
2 CoreFoundation …Run Code Online (Sandbox Code Playgroud) 我想使用以下调用从Youtube获取自动建议:
await fetch('https://suggestqueries.google.com/complete/search?client=youtube&ds=yt&q=skrillex&callback=suggestCallback')
.then(response => console.log(response))
Run Code Online (Sandbox Code Playgroud)
此调用获得以下JSON:
"suggestCallback && suggestCallback(["skrillex",[["skrillex",0],["skrillex bangarang",0],["skrillex make it bun dem",0],["skrillex scary monsters and nice sprites",0],["skrillex cinema",0],["skrillex live",0],["skrillex first of the year",0],["skrillex sicko mode",0],["skrillex kyoto",0],["skrillex remix",0]],{"k":1,"q":"bEJKh2TVzWqSICI3U3xEdXTC00g"}])"
Run Code Online (Sandbox Code Playgroud)
然而,我正在努力将此结果转换为"实际建议"的数组.例如,我想以下列格式存储上面获得的JSON:
let myArray = ["skrillex", "skrillex bangarang", "skrillex make it bun dem", "skrillex scary monsters and nice sprites", "skrillex cinema", "skrillex live", "skrillex first of the year", "skrillex sicko mode", "skrillex kyoto" ,"skrillex remix"]
Run Code Online (Sandbox Code Playgroud)
为实现这一目标,什么是可行的解决方案?
我的Typescript文件中有两个全局变量:
private myVar1 = 10;
private myVar2 = 150;
Run Code Online (Sandbox Code Playgroud)
我有一个自定义元素,在html中可以采取[name]属性.例如,这是我的元素上的条件名称的样子:
<custom-element [name]="myVar1 === 10 ? 'tempName' : 'someOtherTempName'"></custom-element>
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,名称将是tempName,因为myVar1是10.到目前为止一切都很好.
现在我的问题是:我如何引用myVar1或myVar2何时数字(1或2)来自另一个变量?
我尝试了以下但它不起作用:
<custom-element [name]="('myVar'+index) === 10 ? 'tempName' : 'someOtherTempName'"></custom-element>
Run Code Online (Sandbox Code Playgroud) javascript ×4
angular ×2
typescript ×2
animation ×1
conditional ×1
dictionary ×1
ecmascript-6 ×1
html ×1
loops ×1
node.js ×1
photoviewer ×1
react-native ×1
reactjs ×1
transition ×1