小编stk*_*flw的帖子

如何动态添加重定向到react-router?

我有登录组件,该组件应该可供未经身份验证的用户使用.在身份验证之后,此组件应该变得不可用.

   var routes = (
      <Route handler={App}>
        <Route name="signIn" handler={signIn}/>
        {/* redirect, if user is already authenticated */}
        { localStorage.userToken ? (
            <Redirect from="signIn" to="/user"/>
          ) : null
        }
      </Route>
    );

Router.run(routes, (Handler, state) => {
  React.render(<Handler {...state}/>, document.getElementById('main'));
});
Run Code Online (Sandbox Code Playgroud)

如果用户在身份验证后因任何原因重新加载了webapp,则此代码非常有用,但当然如果用户没有重新加载webapp,则不会.我试图使用this.context.router.transitionToSignUp组件,但它工作得很糟糕 - 组件被渲染,然后这个脚本被执行.

所以我想将重定向权限添加到routes变量中,以使路由器重定向,甚至不用尝试渲染组件.

flux reactjs react-router

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

React-native:触发onPress事件(Picker组件)

出于某种原因,相同的Picker组件表现为iOS上的选项列表和Android上的按钮.我不知道,谁决定,这样做是个好主意.

我想隐藏<Picker/>在android上并TouchableOpacity反而渲染.它解决了造型问题.但是,我不知道,如何为隐藏的事件TouchableOpacity onPress触发onPress事件<Picker />

react-native

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

如何避免在ReactJS同构应用程序中的服务器上获取错误"localStorage未定义"?

我在webApp中使用localStorage在客户端存储数据.但是,当我试图使应用程序同构时,这会导致一个问题.由于节点不是浏览器环境,因此无法定义"window","localStorage"等对象.如何解决此问题?

node.js reactjs isomorphic-javascript

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

如何使用node-postgres将多行正确插入PG?

可以像这样插入一行:

client.query("insert into tableName (name, email) values ($1, $2) ", ['john', 'john@gmail.com'], callBack)
Run Code Online (Sandbox Code Playgroud)

此方法会自动注释掉任何特殊字符.

如何一次插入多行?

我需要实现这个:

"insert into tableName (name, email) values ('john', 'john@gmail.com'), ('jane', 'jane@gmail.com')"
Run Code Online (Sandbox Code Playgroud)

我可以使用js字符串运算符手动编译这些行,但后来我需要以某种方式添加特殊字符转义.

javascript sql postgresql node.js node-postgres

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

Android上的React-native <Picker />在渲染后崩溃应用程序

这里的组件:

<Picker
  selectedValue={'item1'}
  onValueChange={(value) => onDismiss(value)}>
    <Picker.Item key={'item1'} label={'item1'} value={'item1'} />
    <Picker.Item key={'item2'} label={'item2'} value={'item2'} />
    <Picker.Item key={'item3'} label={'item3'} value={'item3'} />
</Picker>
Run Code Online (Sandbox Code Playgroud)

没有什么不寻常的,没有额外的库只是RN ^ 0.29.0在调试模式下工作得非常好,但如果它在生产中渲染,应用程序在渲染后立即崩溃(我看到渲染的场景片刻,然后致命的崩溃).

我确信这不会发生在前一段时间,但回滚并没有帮助.我不知道是什么导致了这个问题,或者到底出现了什么问题.

我试过cd android && ./gradlew clean,我试图删除一些属性等 - 没有任何帮助.

然而,虽然我正在建造 - 重建prod app(react-native run-android --variant=release)大约40次,它实际上工作了几次:渲染最终成功,然后我离开现场与选择器,当我想再次到达那里(渲染选择器)再次,它开始崩溃).不知道它是什么.如你所见,我甚至在那里硬编码物品,但它没有帮助.

任何猜测?

android react-native

10
推荐指数
0
解决办法
599
查看次数

iOS/Objective-C:外围模式下的BLE不起作用

我正试图在中央外围模式下启动BLE .现在为了简单起见,使用硬编码变量.
我想我已根据文档实现了所有内容.

我可以使用Android智能手机检查外设模式是否正常工作(api-19,不支持外设模式).例如,当我使用MyBeacon应用程序时,iPhone会正确显示.

但是,当我在我的应用程序中运行此代码时,它不会显示:

这是.h:

#import <RCTBridgeModule.h>
#import <RCTEventEmitter.h>
@import CoreBluetooth;
@import QuartzCore;

@interface BTManager : RCTEventEmitter <RCTBridgeModule, CBCentralManagerDelegate, CBPeripheralManagerDelegate, CBPeripheralDelegate>

@property (nonatomic, strong) CBCentralManager *centralManager;
@property (nonatomic, strong) CBPeripheralManager *peripheralManager;
@property (nonatomic, strong) CBMutableCharacteristic *transferCharacteristic;

@end
Run Code Online (Sandbox Code Playgroud)

而且.m:

#import "BTManager.h"

@implementation BTManager

RCT_EXPORT_MODULE();

- (NSArray<NSString *> *)supportedEvents
{
  return @[@"BTManagerDeviceFound", @"BTManagerStatus"];
}

- (void)viewDidLoad
{
  CBCentralManager *centralManager = [[CBCentralManager alloc] initWithDelegate:self queue:nil];
  self.centralManager = centralManager;
  CBPeripheralManager *peripheralManager = [[CBPeripheralManager alloc] initWithDelegate:self …
Run Code Online (Sandbox Code Playgroud)

bluetooth objective-c ios bluetooth-lowenergy react-native

10
推荐指数
1
解决办法
685
查看次数

我如何处理Google Cloud Functions中的秘密?

这里的常见做法是什么?似乎没有提供任何工具gcloud.我现在正在从本地机器部署功能,所以我可以硬编码秘密,但这似乎不合适.那么,CI/CD怎么样?在这种情况下,我需要将秘密作为环境变量传递.这甚至可能是atm吗?

google-cloud-platform google-cloud-functions

9
推荐指数
2
解决办法
2113
查看次数

React原生作品在android上非常慢

通过'非常慢'我的意思是,它加载一个大约5秒的过渡,尽管这只是一个简单的示例应用程序.

这是整个应用程序RN代码

看一眼 onPressFeed

react-native

8
推荐指数
3
解决办法
8140
查看次数

Mongoose覆盖了文档,而不是`$ set`字段

说,我有一份文件:

{
  _id: 'some_mongodb_id',
  name: 'john doe',
  phone: '+12345678901',
}
Run Code Online (Sandbox Code Playgroud)

我想更新这个文件:

.findOneAndUpdate({_id: 'some_mongodb_id'}, {name: 'Dan smith'})
Run Code Online (Sandbox Code Playgroud)

结果应该是这样的:

{
  _id: 'some_mongodb_id',
  name: 'Dan smith',
}
Run Code Online (Sandbox Code Playgroud)

应删除未指定的属性.

我怎么做?

mongoose mongodb node.js

7
推荐指数
1
解决办法
7542
查看次数

Git:更改提交者信息

我正在使用此脚本来修改提交:

rm -rf repo

echo "clonning $1"
git clone $1 repo

cd repo
git checkout dev

echo "setting remote origin to $2"
git remote set-url origin $2

array=( 'email1@gmail.com' 'email2@gmail.com' )
for OLD_EMAIL in "${array[@]}"
do
  echo $OLD_EMAIL
  git filter-branch -f --env-filter '
  CORRECT_NAME="New name"
  CORRECT_EMAIL="new@email.com"
  if [ "$GIT_COMMITTER_EMAIL" = '$OLD_EMAIL' ]
  then
      export GIT_COMMITTER_NAME="$CORRECT_NAME"
      export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
  fi
  if [ "$GIT_AUTHOR_EMAIL" = '$OLD_EMAIL' ]
  then
      export GIT_AUTHOR_NAME="$CORRECT_NAME"
      export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
  fi
  ' --tag-name-filter cat -- --tags
done
echo "Authors list:"
git …
Run Code Online (Sandbox Code Playgroud)

git bash

7
推荐指数
2
解决办法
207
查看次数