我在文件fix-order-test.js中进行了"与嵌套子项一起工作"的测试.
运行以下命令会运行文件中的所有测试.
jest fix-order-test
Run Code Online (Sandbox Code Playgroud)
我如何只运行一次测试?以下不起作用,因为它搜索指定的正则表达式的文件.
jest 'works with nested children'
Run Code Online (Sandbox Code Playgroud) 在互联网上看到的大约一半的svg例子中,代码都包含在简单的<svg></svg>标签中.
另一半,svg标签有很多复杂的属性,如下所示:
<svg
xmlns="http://www.w3.org/2000/svg"
version="1.1"
xmlns:xlink="http://www.w3.org/1999/xlink">
Run Code Online (Sandbox Code Playgroud)
我的问题是:使用简单的svg标签是否可以?我试过玩复杂的,如果我不包括它们,一切都很好.
我有一个带有少量表单元素和一个按钮的视图(TouchableHighlight).单击该按钮时,活动指示器应显示为现有视图的叠加层.活动指示器应在页面中居中,现有视图应略微模糊以指示叠加.我尝试了不同的选择,但无法让它发挥作用.
render() {
const { username, password } = this.state;
return (
<View style={styles.container}>
<View style={styles.group}>
<Text style={styles.text}>Username:</Text>
<TextInput
style={styles.input}
onChangeText={this.handleUserNameChange.bind(this)}
value={username}
underlineColorAndroid="transparent"
/>
</View>
<View style={styles.group}>
<Text style={styles.text}>Password:</Text>
<TextInput
style={styles.input}
secureTextEntry={true}
onChangeText={this.handlePasswordChange.bind(this)}
value={password}
underlineColorAndroid="transparent"
/>
</View>
<TouchableHighlight
style={styles.button}
onPress={this.handleLogin.bind(this)}>
<Text style={styles.buttonText}>Logon</Text>
</TouchableHighlight>
</View>
);
}
Run Code Online (Sandbox Code Playgroud)
现有款式:
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'flex-start',
alignItems: 'center',
backgroundColor: '#F5FCFF',
marginTop: 60
},
group: {
alignItems: 'flex-start',
padding: 10
},
input: {
width: 150,
padding: 2,
paddingLeft: 5,
borderColor: …Run Code Online (Sandbox Code Playgroud) 当用户按下Return多TextInput行中的键时,将创建一个新行并且键盘继续可见.如何在React native中为多行TextInput解除键盘?
我做了一些研究.我发现单击View外部TextInput不会模糊TextInput,这会导致键盘保持可见.
<View style={styles.container}>
<TextInput
placeholder="To"
style={styles.input}
value={this.state.to}
onChangeText={(to) => this.setState({to})}
/>
<TextInput
placeholder="Text"
style={styles.textarea}
multiline={true}
numberOfLines={4}
value={this.state.text}
onChangeText={(text) => this.setState({text})}
/>
</View>
Run Code Online (Sandbox Code Playgroud)
因为ScrollView,有一个道具 - keyboardShouldPersistTaps导致TextInput模糊.这有什么相同的View吗?我希望多行TextInput模糊,以便键盘被解除.
我正在使用反应路由器.我想从我来自的地方检测上一页(在同一个应用程序中).我在我的上下文中有路由器.但是,我没有在路由器对象上看到任何属性,如"上一个路径"或历史记录.我该怎么做?
我正在使用immutability helper更新React状态的数组中的对象.
我想要修改的对象是嵌套的:
this.state = {
a: {
b: [{ c: '', d: ''}, ...]
}
}
Run Code Online (Sandbox Code Playgroud)
我想使用immutability helper更新b的第n个元素中的prop c.
没有不变性助手的等效代码是:
const newState = Object.assign({}, this.state);
newState.a = Object.assign({}, newState.a);
newState.a.b = newState.a.b.slice();
newState.a.b[n] = Object.assign({}, newState.a.b[n]);
newState.a.b[n].c = 'new value';
this.setState({ newState });
Run Code Online (Sandbox Code Playgroud)
我知道上面的代码有点难看.我假设使用immutability helper的代码将解决我的问题.谢谢
用户可以在他/她点击退出按钮时注销,但如果令牌过期,他/她无法注销,因为在我的应用程序中,令牌在服务器端和前端都使用.当用户单击注销按钮时,如果令牌有效,则清除服务器和浏览器中的令牌.当用户没有注销并且他/她的令牌过期但未在浏览器中清除时,有可能.为了解决这种情况,每次用户访问我的应用程序时如何检查令牌过期,如果令牌过期,请从浏览器中清除令牌?
我尝试在每次用户刷新页面或切换到另一页时在后台观看的saga.我不认为这是一种有效的方式.我认为中间件开始发挥作用.
function* loadInitialActions() {
var dateNow = new Date();
console.log(jwtDecode(token).exp < dateNow.getTime() - jwtDecode(token).iat);
const token =
JSON.parse(localStorage.getItem("user")) &&
JSON.parse(localStorage.getItem("user"))["token"];
if (
token &&
jwtDecode(token).exp < dateNow.getTime() - jwtDecode(token).iat
) {
yield put(LOGOUT_SUCCESS);
}
}
function* initialize() {
const watcher = yield fork(loadInitialActions);
yield take([INITIALIZE_ERROR, INITIALIZE_SUCCESS]);
yield cancel(watcher);
}
function* rootSaga() {
console.log("rootSaga");
yield takeLatest(INITIALIZE, initialize);
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题是如果令牌从中间件到期,我如何使用令牌过期逻辑和注销用户?
在React native中,我想在onBlur事件处理程序中传递TextInput的值.
onBlur={(e) => this.validateText(e.target.value)}
Run Code Online (Sandbox Code Playgroud)
e.target.value适用于简单的React.但是,在react-native中,e.target.value是未定义的.react-native中可用的事件args的结构是什么?
我正在使用AVSpeechSynthesizer播放文本.我有一系列的话语可以玩.
NSMutableArray *utterances = [[NSMutableArray alloc] init];
for (NSString *text in textArray) {
AVSpeechUtterance *welcome = [[AVSpeechUtterance alloc] initWithString:text];
welcome.rate = 0.25;
welcome.voice = voice;
welcome.pitchMultiplier = 1.2;
welcome.postUtteranceDelay = 0.25;
[utterances addObject:welcome];
}
lastUtterance = [utterances lastObject];
for (AVSpeechUtterance *utterance in utterances) {
[speech speakUtterance:utterance];
}
Run Code Online (Sandbox Code Playgroud)
我有一个取消按钮停止说话.当我说出第一个话语时单击取消按钮时,语音停止并清除队列中的所有话语.如果我在说出第一个话语(即第二个话语)后按下取消按钮,则停止讲话不会刷新话语队列.我正在使用的代码是:
[speech stopSpeakingAtBoundary:AVSpeechBoundaryImmediate];
Run Code Online (Sandbox Code Playgroud)
有人可以确认这是API中的错误还是我错误地使用了API?如果是错误,是否有解决此问题的解决方法?
react-native ×3
reactjs ×3
javascript ×2
arrays ×1
cocoa-touch ×1
firebase ×1
immutability ×1
ios ×1
jestjs ×1
jwt ×1
react-router ×1
redux ×1
redux-saga ×1
svg ×1
tags ×1
xcode ×1
xml ×1