redux-saga:eventChannel和监听器,它们响应回调返回

时间:2018-12-25 08:23:21

标签: react-native redux-saga

在react-native backhandler中,侦听器对回调函数做出反应并采取适当措施。

我需要阅读我的商店,并根据它返回true或false。 但是我无法在普通功能中使用选择效果,也无法通过“ watchBackButton”功能影响监听器回调功能。

export function* backButtonListen() {
  return eventChannel(emitter => {
    const backHandlerListener = BackHandler.addEventListener(
      "hardwareBackPress",
      () => {
        emitter("back pressed");
      }
    );
    return () => {
      backHandlerListener.remove();
    };
  });
}

export function* watchBackButton() {
  const chan = yield call(backButtonListen);
  try {
    while (true) {
      let back = yield take(chan);
    }
}

1 个答案:

答案 0 :(得分:1)

由于事件通道不是双向的,所以我不认为有一种方法可以使用 NSDictionary *messageDict = @{ @"type" : @"text", @"text" : @"hello word" }; NSMutableDictionary *params = @{ @"content" : @[messageDict] } NSURLSessionDataTask *task = [client postDataTaskWithBlogName:@"myblog.tumblr.com" type:@"text" parameters:params callback:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { NSLog(@"data = \n %@",[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]); }]; [task resume]; 效果将某些当前状态从传奇传递到事件通道。

但是,可以直接访问商店。有多种方法可以将商店实例添加到事件通道。查看我的其他答案here

使用例如上下文方法,您可以执行以下操作:

select