запутался в Deeplink в версии 5 навигации React - PullRequest
0 голосов
/ 11 марта 2020

Привет, парень застрял на структуре deeplink во вложенном навигаторе. Сначала мой код навигации, это просто стек внутри вкладки

function HomeStack() {
return (
    <Stack.Navigator>
        <Stack.Screen
            name="Home"
            component={HomeScreen}
        />
        <Stack.Screen
            name="SinglePost"
            component={SinglePost}
        />
    </Stack.Navigator>
  );
}

и нижних вкладок

  <Tab.Screen name="Home" component={HomeStack} />

, так что это часть конфигурации реакции Навигация, что для организации Deeplink сначала я поставил родителя стека

const config = {
Home: {
    path: "stack",
    initialRouteName: "SinglePost",
    screens: {
        Home: "home",
        SinglePost: {
            path: "post/:post_id",
            parse: {
                post_id: Number,
            }
        }
    }
  }
};

, а затем при переходе на этот экран с

xcrun simctl openurl booted kriss://post/3232

здесь sresult enter image description here

благодарю за продвижение

1 Ответ

0 голосов
/ 13 марта 2020

Проблема заключается в текущей реализации функции getStateFromPath, которая создает состояние навигации по заданному пути. Регулярное выражение, разбирающее параметры после :, выглядит следующим образом: const match = new RegExp('^' + escape(pattern).replace(/:[a-z0-9]+/gi, '([^/]+)') + '/?');, поэтому оно будет правильно анализировать только параметры alphanumeri c. Скоро он будет изменен, сейчас используйте, например, postId вместо post_id, и он должен работать просто отлично.

...