小编vij*_*yst的帖子

如何使用Jest运行单个测试?

我在文件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)

jestjs

272
推荐指数
16
解决办法
15万
查看次数

是否需要SVG参数,例如'xmlns'和'version'?

在互联网上看到的大约一半的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标签是否可以?我试过玩复杂的,如果我不包括它们,一切都很好.

xml tags svg

184
推荐指数
3
解决办法
4万
查看次数

如何在react-native中重叠ActivityIndi​​cator?

我有一个带有少量表单元素和一个按钮的视图(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)

react-native

50
推荐指数
4
解决办法
3万
查看次数

在React native中的多行TextInput中关闭键盘

当用户按下ReturnTextInput行中的键时,将创建一个新行并且键盘继续可见.如何在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模糊,以便键盘被解除.

react-native

24
推荐指数
3
解决办法
1万
查看次数

检测路由器中的上一个路径?

我正在使用反应路由器.我想从我来自的地方检测上一页(在同一个应用程序中).我在我的上下文中有路由器.但是,我没有在路由器对象上看到任何属性,如"上一个路径"或历史记录.我该怎么做?

reactjs react-router

24
推荐指数
7
解决办法
4万
查看次数

使用immutability helper更新React状态的数组对象

我正在使用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的代码将解决我的问题.谢谢

javascript immutability reactjs

21
推荐指数
2
解决办法
2万
查看次数

使用Firebase控制台在Firebase中设置阵列

我正在使用Firebase控制台为演示应用程序准备数据.其中一个数据项是与会者.与会者是一个阵列.我想在Firebase中添加几个与会者作为一个数组.我理解Firebase没有数组,但是带有键的对象(按时间顺序排列).如何准备样本数据呢?我当前的Firebase数据如下所示. 在此输入图像描述

arrays firebase firebase-realtime-database firebase-console

18
推荐指数
3
解决办法
2万
查看次数

如何检查令牌过期和注销用户?

用户可以在他/她点击退出按钮时注销,但如果令牌过期,他/她无法注销,因为在我的应用程序中,令牌在服务器端和前端都使用.当用户单击注销按钮时,如果令牌有效,则清除服务器和浏览器中的令牌.当用户没有注销并且他/她的令牌过期但未在浏览器中清除时,有可能.为了解决这种情况,每次用户访问我的应用程序时如何检查令牌过期,如果令牌过期,请从浏览器中清除令牌?

我尝试在每次用户刷新页面或切换到另一页时在后台观看的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)

所以我的问题是如果令牌从中间件到期,我如何使用令牌过期逻辑和注销用户?

javascript jwt reactjs redux redux-saga

16
推荐指数
2
解决办法
2万
查看次数

当调用onBlur时,如何获取TextInput中的值?

在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的结构是什么?

react-native

12
推荐指数
3
解决办法
1万
查看次数

AVSpeechSynthesizer的问题,有任何解决方法吗?

我正在使用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?如果是错误,是否有解决此问题的解决方法?

xcode cocoa-touch ios

9
推荐指数
3
解决办法
9596
查看次数