Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How do I get the current route? #158

Closed
lynndylanhurley opened this issue Jan 28, 2016 · 34 comments
Closed

How do I get the current route? #158

lynndylanhurley opened this issue Jan 28, 2016 · 34 comments

Comments

@lynndylanhurley
Copy link
Collaborator

I need to know what the current route is from the header component of a router. The issue is that the header needs to change depending on the current screen.

What is the best way to access the value of the current route globally?

I'm using redux and I'd like to have this value available in my store, but I'm not sure where to find it, and I'm not sure how to update the value when it changes.

@jeremybarbet
Copy link

You need to import { Actions } from 'react-native-router-flux'; and { this.props.title } should display the current route.

@lynndylanhurley
Copy link
Collaborator Author

Thanks for the response @JeremDsgn. Can you please elaborate?

Actions contains a lot of properties, but I can't find one that reliably returns the current visible route.

this.props.title is not defined in my header component. The header component was added to the Router like this:

<Router header={Header}>

@jeremybarbet
Copy link

  • The Actions return all the data related to the routes you declare in index.ios.js.
  • this.props.title return the title value defined on the route itself.
<Route name="TabBar">
  <Router header={ header }>
    <Route name="page1" component={ Page1 } title="Page1" schema="tab" type="switch" /> // Page 1
    <Route name="page2" component={ Page2 } title="Page2" schema="tab" type="switch" /> // Page 2
    <Route name="page3" component={ Page3 } title="Page3" schema="tab" type="switch" /> // Page 3
  </Router>
</Route>

@lynndylanhurley
Copy link
Collaborator Author

I'm sorry, I don't think my initial post was clear. I'll try to elaborate.

Here is my main component that contains the routes:

class App extends React.Component {
  render () {
    return (
      <Router header={Header}>
        <Route
          name="Index"
          component={Index}
          title="Index"
          initial={true} />

        <Route
          name="Detail"
          component={Detail}
          title="Detail" />
      </Router>
    );
  }
}

Here is the header component that is referenced in the above code:

class Header extends React.Component {
  render () {

    // from here, how do I know which page I'm looking at?
    if (???? === 'Index') {
      let title = 'this is the index';
    } else {
      let title = 'this is the detail';
    }

    return (
      <View>
        <Text>{title}</Text>
      </View>
    );
  }
}

What can I replace the ???? with in the above code that will let me know what to render in the Header component?

@jeremybarbet
Copy link

import React from 'react-native';
import { Actions } from 'react-native-router-flux';

class Header extends React.Component {
  render () {
    return (
      <View>
        <Text>{ `This is the ${ this.props.title }` }</Text>
        {/*
          This is the Index
          This is the Detail
        */}
      </View>
    );
  }
}

@lynndylanhurley
Copy link
Collaborator Author

If I use that same code in my app, this.props.title is undefined.

@jeremybarbet
Copy link

Can you paste complete code of related page ?

@lynndylanhurley
Copy link
Collaborator Author

My actual code is only a little more complex. I'm using redux, so the routes are wrapped in a Provider, and the Router that has the Header component is nested within a parent Router.

class App extends React.Component {
  render () {
    return (
      <Provider store={store}>
        <Router>
          <Route
            name="Login"
            component={Login}
            title="Login" />

          <Route name="SignedIn">
            <Router header={Header}>
              <Route
                name="Index"
                component={Index}
                title="Index"
                initial={true} />

              <Route
                name="Detail"
                component={Detail}
                title="Detail" />
            </Router>
          </Route>
        </Router>
      </Provider>
    );
  }
}

@micksabox
Copy link

I think this might help.
You can get the current route using Actions.currentRouter.currentRoute during an Actions.onPop or Actions.onPush hook. This route has the name and any properties passed when defining your global route stack. The Actions can be accessed globally, so depending on what the current route is you can dispatch an action that updates the state in App. App is a component so modifying its state should trigger a re-render to show the updated header view.

@lynndylanhurley
Copy link
Collaborator Author

Thanks @micksabox! Just to clarify, does this mean that in order to access the current route, I will need to add onPush, onPop, and onReplace hooks to each individual route in my app?

@micksabox
Copy link

@lynndylanhurley glad to help! I know the hooks work on a Router instance, but I'm not sure about an individual Route. So add the hooks to each router that you care about, then during the on___ event hook you can query the current route.

@lynndylanhurley
Copy link
Collaborator Author

This is what I would like to do:

// update the global redux store with the current route
function onEnterHandler() {
  let currentRoute = Actions.currentRouter.currentRoute;
  store.dispatch(updateCurrentRoute(currentRoute));
}

class App extends React.Component {
  render () {
    return (
      <Provider store={store}>
        <Router
          onPop={onEnterHandler}
          onReplace={onEnterHandler}
          onPush={onEnterHandler}>
          <Route
            name="Login"
            component={Login}
            title="Login" />

          <Route name="SignedIn">
            <Router header={Header}>
              <Route
                name="Index"
                component={Index}
                title="Index"
                initial={true} />

              <Route
                name="Detail"
                component={Detail}
                title="Detail" />
            </Router>
          </Route>
        </Router>
      </Provider>
    );
  }
}

The problem is that the onEnterHandler only gets called once when the page loads. So I end up with something like this:

class App extends React.Component {
  render () {
    return (
      <Provider store={store}>
        <Router
          onPop={onEnterHandler}
          onReplace={onEnterHandler}
          onPush={onEnterHandler}>
          <Route
            name="Login"
            component={Login}
            title="Login" />

          <Route name="SignedIn">
            <Router 
              onPop={onEnterHandler}
              onReplace={onEnterHandler}
              onPush={onEnterHandler}
              header={Header}>
              <Route
                name="Index"
                component={Index}
                title="Index"
                initial={true} />

              <Route
                name="Detail"
                component={Detail}
                title="Detail" />
            </Router>
          </Route>
        </Router>
      </Provider>
    );
  }
}

And so on for each child Router.

But this still doesn't work because if I navigate back to the Login route from one of the SignedIn routes, the onEnterHandler is not fired again.

In this case, it's actually easier and more reliable to update the current router state at the componentWillMount stage of the individual screen components.

But that defeats the purpose of using the router in the first place, which is to manage the routing from a central resource.

I feel like I'm missing something - is there a better way to do this?

@lynndylanhurley
Copy link
Collaborator Author

@aksonov - would you accept a PR that introduces a way to access the current route?

@behl1
Copy link

behl1 commented Feb 5, 2016

@lynndylanhurley Did you find a way to update the redux store?

@aksonov
Copy link
Owner

aksonov commented Feb 5, 2016

@lynndylanhurley what problem is with Actions.currentRouter.currentRoute ?

@lynndylanhurley
Copy link
Collaborator Author

@aksonov - see #183.

The value seems to be correct when it's checked, but it doesn't trigger a state update.

For my use case, the style and content of my header component needs to change when I change routes. The header component is not re-rendered when the value of Actions.currentRouter.currentRoute changes.

@lynndylanhurley
Copy link
Collaborator Author

@behl1 - the only way I can find to do this is to manually update the state when a route component is mounted. For example:

class Index extends React.Component {
  // ...
  componentDidMount () {
    this.props.dispatch(currentScreenChange('Index'));
  }

  // ...
}

Where currentScreenChange is a redux action that I created to set the router state manually.

I don't like this solution for the following reasons:

  • It involves a lot of code repetition.
  • It takes something that should be the router's responsibility and makes it the responsibility of every screen in the app.
  • It creates another weird thing that all of my co-workers and I must remember to do when creating new routes for our apps.
  • Even this method doesn't seem to get called every time. I'm still trying to nail down the issue, but I think sometimes when routes are popped, the destination component doesn't fire componentDidMount. I could be wrong about the cause, but the point is that even this method isn't 100% reliable.

I would prefer if there was a global callback for route changes that I could hook into.

Something like this would be ideal:

const store = // ... create redux store

// define a handler that is called whenever the current route is changed
function onEnterHandler(nextScreenName, lastScreenName) {

  // dispatch route change event from a single, centralized location
  store.dispatch(updateRoute(nextScreenName, lastScreenName);
}

// then in the render method, place the `onEnterHandler` on the top-level router:
<Router onEnter={onEnterHandler}>
  // ...
</Router>

@aksonov - how do you feel about this approach?

@lynndylanhurley
Copy link
Collaborator Author

@aksonov - thanks, I'll test 78e5a7d ASAP!

@lynndylanhurley
Copy link
Collaborator Author

Thanks @aksonov - this works really well in all cases except for swipe navigation. I just submitted a PR to address this (see #204).

@lynndylanhurley
Copy link
Collaborator Author

Thanks @aksonov!

@JosephKarayan
Copy link

I am using 'react-native-router-flux' to implement navigation between pages in my app.
There are some scenes (sort, filter) that I would like to remove from the back stack.

Is it possible to skip adding some pages to the stack or remove the page from back stack ?

@JosephKarayan
Copy link

The issue with removing a scene from the back stack was resolved by using popAndReplace' type in the the custom actions:
Actions.products({ ...this.props.product, type: 'popAndReplace' });

@PumpkinSeed
Copy link

PumpkinSeed commented May 15, 2017

Can someone give more information about the Actions.currentRouter.currentRoute.
I'm using the v3.38.0 version and it is not existed in this package.

import { Actions } from 'react-native-router-flux';
console.log(Actions.currentRouter.currentRoute);

Error: undefined currentRoute. I searched for 'current' in the codebase, and I found nothing.

aksonov added a commit that referenced this issue Jul 8, 2017
…#10,#11,#12,#13,#14,#15,#16,#17,#18,#19,#20,#21,#22,#23,#24,#25,#26,#27,#28,#29,#30,#31,#32,#33,#34,#35,#36,#37,#38,#39,#40,#41,#42,#43,#44,#45,#46,#47,#48,#49,#50,#51,#52,#53,#54,#55,#56,#57,#58,#59,#60,#61,#62,#63,#64,#65,#66,#67,#68,#69,#70,#71,#72,#73,#74,#75,#76,#77,#78,#79,#80,#81,#82,#83,#84,#85,#86,#87,#88,#89,#90,#91,#92,#93,#94,#95,#96,#97,#98,#99,#100,#101,#102,#103,#104,#105,#106,#107,#108,#109,#110,#111,#112,#113,#114,#115,#116,#117,#118,#119,#120,#121,#122,#123,#124,#125,#126,#127,#128,#129,#130,#131,#132,#133,#134,#135,#136,#137,#138,#139,#140,#141,#142,#143,#144,#145,#146,#147,#148,#149,#150,#151,#152,#153,#154,#155,#156,#157,#158,#159,#160,#161,#162,#163,#164,#165,#166,#167,#168,#169,#170,#171,#172,#173,#174,#175,#176,#177,#178,#179,#180,#181,#182,#183,#184,#185,#186,#187,#188,#189,#190,#191,#192,#193,#194,#195,#196,#197,#198,#199,#200,#201,#202,#203,#204,#205,#206,#207,#208,#209,#210,#211,#212,#213,#214,#215,#216,#217,#218,#219,#220,#221,#222,#223,#224,#225,#226,#227,#228,#229,#230,#231,#232,#233,#234,#235,#236,#237,#238,#239,#240,#241,#242,#243,#244,#245,#246,#247,#248,#249,#250,#251,#252,#253,#254,#255,#256,#257,#258,#259,#260,#261,#262,#263,#264,#265,#266,#267,#268,#269,#270,#271,#272,#273,#274,#275,#276,#277,#278,#279,#280,#281,#282,#283,#284,#285,#286,#287,#288,#289,#290,#291,#292,#293,#294,#295,#296,#297,#298,#299,#300,#301,#302,#303,#304,#305,#306,#307,#308,#309,#310,#311,#312,#313,#314,#315,#316,#317,#318,#319,#320,#321,#322,#323,#324,#325,#326,#327,#328,#329,#330,#331,#332,#333,#334,#335,#336,#337,#338,#339,#340,#341,#342,#343,#344,#345,#346,#347,#348,#349,#350,#351,#352,#353,#354,#355,#356,#357,#358,#359,#360,#361,#362,#363,#364,#365,#366,#367,#368,#369,#370,#371,#372,#373,#374,#375,#376,#377,#378,#379,#380,#381,#382,#383,#384,#385,#386,#387,#388,#389,#390,#391,#392,#393,#394,#395,#396,#397,#398,#399,#400,#401,#402,#403,#404,#405,#406,#407,#408,#409,#410,#411,#412,#413,#414,#415,#416,#417,#418,#419,#420,#421,#422,#423,#424,#425,#426,#427,#428,#429,#430,#431,#432,#433,#434,#435,#436,#437,#438,#439,#440,#441,#442,#443,#444,#445,#446,#447,#448,#449,#450,#451,#452,#453,#454,#455,#456,#457,#458,#459,#460,#461,#462,#463,#464,#465,#466,#467,#468,#469,#470,#471,#472,#473,#474,#475,#476,#477,#478,#479,#480,#481,#482,#483,#484,#485,#486,#487,#488,#489,#490,#491,#492,#493,#494,#495,#496,#497,#498,#499,#500,#501,#502,#503,#504,#505,#506,#507,#508,#509,#510,#511,#512,#513,#514,#515,#516,#517,#518,#519,#520,#521,#522,#523,#524,#525,#526,#527,#528,#529,#530,#531,#532,#533,#534,#535,#536,#537,#538,#539,#540,#541,#542,#543,#544,#545,#546,#547,#548,#549,#550,#551,#552,#553,#554,#555,#556,#557,#558,#559,#560,#561,#562,#563,#564,#565,#566,#567,#568,#569,#570,#571,#572,#573,#574,#575,#576,#577,#578,#579,#580,#581,#582,#583,#584,#585,#586,#587,#588,#589,#590,#591,#592,#593,#594,#595,#596,#597,#598,#599,#600,#601,#602,#603,#604,#605,#606,#607,#608,#609,#610,#611,#612,#613,#614,#615,#616,#617,#618,#619,#620,#621,#622,#623,#624,#625,#626,#627,#628,#629,#630,#631,#632,#633,#634,#635,#636,#637,#638,#639,#640,#641,#642,#643,#644,#645,#646,#647,#648,#649,#650,#651,#652,#653,#654,#655,#656,#657,#658,#659,#660,#661,#662,#663,#664,#665,#666,#667,#668,#669,#670,#671,#672,#673,#674,#675,#676,#677,#678,#679,#680,#681,#682,#683,#684,#685,#686,#687,#688,#689,#690,#691,#692,#693,#694,#695,#696,#697,#698,#699,#700,#701,#702,#703,#704,#705,#706,#707,#708,#709,#710,#711,#712,#713,#714,#715,#716,#717,#718,#719,#720,#721,#722,#723,#724,#725,#726,#727,#728,#729,#730,#731,#732,#733,#734,#735,#736,#737,#738,#739,#740,#741,#742,#743,#744,#745,#746,#747,#748,#749,#750,#751,#752,#753,#754,#755,#756,#757,#758,#759,#760,#761,#762,#763,#764,#765,#766,#767,#768,#769,#770,#771,#772,#773,#774,#775,#776,#777,#778,#779,#780,#781,#782,#783,#784,#785,#786,#787,#788,#789,#790,#791,#792,#793,#794,#795,#796,#797,#798,#799,#800,#801,#802,#803,#804,#805,#806,#807,#808,#809,#810,#811,#812,#813,#814,#815,#816,#817,#818,#819,#820,#821,#822,#823,#824,#825,#826,#827,#828,#829,#830,#831,#832,#833,#834,#835,#836,#837,#838,#839,#840,#841,#842,#843,#844,#845,#846,#847,#848,#849,#850,#851,#852,#853,#854,#855,#856,#857,#858,#859,#860,#861,#862,#863,#864,#865,#866,#867,#868,#869,#870,#871,#872,#873,#874,#875,#876,#877,#878,#879,#880,#881,#882,#883,#884,#885,#886,#887,#888,#889,#890,#891,#892,#893,#894,#895,#896,#897,#898,#899,#900,#901,#902,#903,#904,#905,#906,#907,#908,#909,#910,#911,#912,#913,#914,#915,#916,#917,#918,#919,#920,#921,#922,#923,#924,#925,#926,#927,#928,#929,#930,#931,#932,#933,#934,#935,#936,#937,#938,#939,#940,#941,#942,#943,#944,#945,#946,#947,#948,#949,#950,#951,#952,#953,#954,#955,#956,#957,#958,#959,#960,#961,#962,#963,#964,#965,#966,#967,#968,#969,#970,#971,#972,#973,#974,#975,#976,#977,#978,#979,#980,#981,#982,#983,#984,#985,#986,#987,#988,#989,#990,#991,#992,#993,#994,#995,#996,#997,#998,#999,#1000,#1001,#1002,#1003,#1004,#1005,#1006,#1007,#1008,#1009,#1010,#1011,#1012,#1013,#1014,#1015,#1016,#1017,#1018,#1019,#1020,#1021,#1022,#1023,#1024,#1025,#1026,#1027,#1028,#1029,#1030,#1031,#1032,#1033,#1034,#1035,#1036,#1037,#1038,#1039,#1040,#1041,#1042,#1043,#1044,#1045,#1046,#1047,#1048,#1049,#1050,#1051,#1052,#1053,#1054,#1055,#1056,#1057,#1058,#1059,#1060,#1061,#1062,#1063,#1064,#1065,#1066,#1067,#1068,#1069,#1070,#1071,#1072,#1073,#1074,#1075,#1076,#1077,#1078,#1079,#1080,#1081,#1082,#1083,#1084,#1085,#1086,#1087,#1088,#1089,#1090,#1091,#1092,#1093,#1094,#1095,#1096,#1097,#1098,#1099,#1100,#1101,#1102,#1103,#1104,#1105,#1106,#1107,#1108,#1109,#1110,#1111,#1112,#1113,#1114,#1115,#1116,#1117,#1118,#1119,#1120,#1121,#1122,#1123,#1124,#1125,#1126,#1127,#1128,#1129,#1130,#1131,#1132,#1133,#1134,#1135,#1136,#1137,#1138,#1139,#1140,#1141,#1142,#1143,#1144,#1145,#1146,#1147,#1148,#1149,#1150,#1151,#1152,#1153,#1154,#1155,#1156,#1157,#1158,#1159,#1160,#1161,#1162,#1163,#1164,#1165,#1166,#1167,#1168,#1169,#1170,#1171,#1172,#1173,#1174,#1175,#1176,#1177,#1178,#1179,#1180,#1181,#1182,#1183,#1184,#1185,#1186,#1187,#1188,#1189,#1190,#1191,#1192,#1193,#1194,#1195,#1196,#1197,#1198,#1199,#1200,#1201,#1202,#1203,#1204,#1205,#1206,#1207,#1208,#1209,#1210,#1211,#1212,#1213,#1214,#1215,#1216,#1217,#1218,#1219,#1220,#1221,#1222,#1223,#1224,#1225,#1226,#1227,#1228,#1229,#1230,#1231,#1232,#1233,#1234,#1235,#1236,#1237,#1238,#1239,#1240,#1241,#1242,#1243,#1244,#1245,#1246,#1247,#1248,#1249,#1250,#1251,#1252,#1253,#1254,#1255,#1256,#1257,#1258,#1259,#1260,#1261,#1262,#1263,#1264,#1265,#1266,#1267,#1268,#1269,#1270,#1271,#1272,#1273,#1274,#1275,#1276,#1277,#1278,#1279,#1280,#1281,#1282,#1283,#1284,#1285,#1286,#1287,#1288,#1289,#1290,#1291,#1292,#1293,#1294,#1295,#1296,#1297,#1298,#1299,#1300,#1301,#1302,#1303,#1304,#1305,#1306,#1307,#1308,#1309,#1310,#1311,#1312,#1313,#1314,#1315,#1316,#1317,#1318,#1319,#1320,#1321,#1322,#1323,#1324,#1325,#1326,#1327,#1328,#1329,#1330,#1331,#1332,#1333,#1334,#1335,#1336,#1337,#1338,#1339,#1340,#1341,#1342,#1343,#1344,#1345,#1346,#1347,#1348,#1349,#1350,#1351,#1352,#1353,#1354,#1355,#1356,#1357,#1358,#1359,#1360,#1361,#1362,#1363,#1364,#1365,#1366,#1367,#1368,#1369,#1370,#1371,#1372,#1373,#1374,#1375,#1376,#1377,#1378,#1379,#1380,#1381,#1382,#1383,#1384,#1385,#1386,#1387,#1388,#1389,#1390,#1391,#1392,#1393,#1394,#1395,#1396,#1397,#1398,#1399,#1400,#1401,#1402,#1403,#1404,#1405,#1406,#1407,#1408,#1409,#1410,#1411,#1412,#1413,#1414,#1415,#1416,#1417,#1418,#1419,#1420,#1421,#1422,#1423,#1424,#1425,#1426,#1427,#1428,#1429,#1430,#1431,#1432,#1433,#1434,#1435,#1436,#1437,#1438,#1439,#1440,#1441,#1442,#1443,#1444,#1445,#1446,#1447,#1448,#1449,#1450,#1451,#1452,#1453,#1454,#1455,#1456,#1457,#1458,#1459,#1460,#1461,#1462,#1463,#1464,#1465,#1466,#1467,#1468,#1469,#1470,#1471,#1472,#1473,#1474,#1475,#1476,#1477,#1478,#1479,#1480,#1481,#1482,#1483,#1484,#1485,#1486,#1487,#1488,#1489,#1490,#1491,#1492,#1493,#1494,#1495,#1496,#1497,#1498,#1499,#1500,#1501,#1502,#1503,#1504,#1505,#1506,#1507,#1508,#1509,#1510,#1511,#1512,#1513,#1514,#1515,#1516,#1517,#1518,#1519,#1520,#1521,#1522,#1523,#1524,#1525,#1526,#1527,#1528,#1529,#1530,#1531,#1532,#1533,#1534,#1535,#1536,#1537,#1538,#1539,#1540,#1541,#1542,#1543,#1544,#1545,#1546,#1547,#1548,#1549,#1550,#1551,#1552,#1553,#1554,#1555,#1556,#1557,#1558,#1559,#1560,#1561,#1562,#1563,#1564,#1565,#1566,#1567,#1568,#1569,#1570,#1571,#1572,#1573,#1574,#1575,#1576,#1577,#1578,#1579,#1580,#1581,#1582,#1583,#1584,#1585,#1586,#1587,#1588,#1589,#1590,#1591,#1592,#1593,#1594,#1595,#1596,#1597,#1598,#1599,#1600,#1601,#1602,#1603,#1604,#1605,#1606,#1607,#1608,#1609,#1610,#1611,#1612,#1613,#1614,#1615,#1616,#1617,#1618,#1619,#1620,#1621,#1622,#1623,#1624,#1625,#1626,#1627,#1628,#1629,#1630,#1631,#1632,#1633,#1634,#1635,#1636,#1637,#1638,#1639,#1640,#1641,#1642,#1643,#1644,#1645,#1646,#1647,#1648,#1649,#1650,#1651,#1652,#1653,#1654,#1655,#1656,#1657,#1658,#1659,#1660,#1661,#1662,#1663,#1664,#1665,#1666,#1667,#1668,#1669,#1670,#1671,#1672,#1673,#1674,#1675,#1676,#1677,#1678,#1679,#1680,#1681,#1682,#1683,#1684,#1685,#1686,#1687,#1688,#1689,#1690,#1691,#1692,#1693,#1694,#1695,#1696,#1697,#1698,#1699,#1700,#1701,#1702,#1703,#1704,#1705,#1706,#1707,#1708,#1709,#1710,#1711,#1712,#1713,#1714,#1715,#1716,#1717,#1718,#1719,#1720,#1721,#1722,#1723,#1724,#1725,#1726,#1727,#1728,#1729,#1730,#1731,#1732,#1733,#1734,#1735,#1736,#1737,#1738,#1739,#1740,#1741,#1742,#1743,#1744,#1745,#1746,#1747,#1748,#1749,#1750,#1751,#1752,#1753,#1754,#1755,#1756,#1757,#1758,#1759,#1760,#1761,#1762,#1763,#1764,#1765,#1766,#1767,#1768,#1769,#1770,#1771,#1772,#1773,#1774,#1775,#1776,#1777,#1778,#1779,#1780,#1781,#1782,#1783,#1784,#1785,#1786,#1787,#1788,#1789,#1790,#1791,#1792,#1793,#1794,#1795,#1796,#1797,#1798,#1799,#1800,#1801,#1802,#1803,#1804,#1805,#1806,#1807,#1808,#1809,#1810,#1811,#1812,#1813,#1814,#1815,#1816,#1817,#1818,#1819,#1820,#1821,#1822,#1823,#1824,#1825,#1826,#1827,#1828,#1829,#1830,#1831,#1832,#1833,#1834,#1835,#1836,#1837,#1838,#1839,#1840,#1841,#1842,#1843,#1844,#1845,#1846,#1847,#1848,#1849,#1850,#1851,#1852,#1853,#1854,#1855,#1856,#1857,#1858,#1859,#1860,#1861,#1862,#1863,#1864,#1865,#1866,#1867,#1868,#1869,#1870,#1871,#1872,#1873,#1874,#1875,#1876,#1877,#1878,#1879,#1880,#1881,#1882,#1883,#1884,#1885,#1886,#1887,#1888,#1889,#1890,#1891,#1892,#1893,#1894,#1895,#1896,#1897,#1898,#1899,#1900,#1901,#1902,#1903,#1904,#1905,#1906,#1907,#1908,#1909,#1910,#1911,#1912,#1913,#1914,#1915,#1916,#1917,#1918,#1919,#1920,#1921,#1922,#1923,#1924,#1925,#1926,#1927,#1928,#1929,#1930,#1931,#1932,#1933,#1934,#1935,#1936,#1937,#1938,#1939,#1940,#1941,#1942,#1943,#1944,#1945,#1946,#1947,#1948,#1949,#1950,#1951,#1952,#1953,#1954,#1955,#1956,#1957,#1958,#1959,#1960,#1961,#1962,#1963,#1964,#1965,#1966,#1967,#1968,#1969,#1970,#1971,#1972,#1973

V4 announcement, v3 is obsolete now.
aksonov added a commit that referenced this issue Jul 8, 2017
…loses #7,closes #8,closes #9,closes #10,closes #11,closes #12,closes #13,closes #14,closes #15,closes #16,closes #17,closes #18,closes #19,closes #20,closes #21,closes #22,closes #23,closes #24,closes #25,closes #26,closes #27,closes #28,closes #29,closes #30,closes #31,closes #32,closes #33,closes #34,closes #35,closes #36,closes #37,closes #38,closes #39,closes #40,closes #41,closes #42,closes #43,closes #44,closes #45,closes #46,closes #47,closes #48,closes #49,closes #50,closes #51,closes #52,closes #53,closes #54,closes #55,closes #56,closes #57,closes #58,closes #59,closes #60,closes #61,closes #62,closes #63,closes #64,closes #65,closes #66,closes #67,closes #68,closes #69,closes #70,closes #71,closes #72,closes #73,closes #74,closes #75,closes #76,closes #77,closes #78,closes #79,closes #80,closes #81,closes #82,closes #83,closes #84,closes #85,closes #86,closes #87,closes #88,closes #89,closes #90,closes #91,closes #92,closes #93,closes #94,closes #95,closes #96,closes #97,closes #98,closes #99,closes #100,closes #101,closes #102,closes #103,closes #104,closes #105,closes #106,closes #107,closes #108,closes #109,closes #110,closes #111,closes #112,closes #113,closes #114,closes #115,closes #116,closes #117,closes #118,closes #119,closes #120,closes #121,closes #122,closes #123,closes #124,closes #125,closes #126,closes #127,closes #128,closes #129,closes #130,closes #131,closes #132,closes #133,closes #134,closes #135,closes #136,closes #137,closes #138,closes #139,closes #140,closes #141,closes #142,closes #143,closes #144,closes #145,closes #146,closes #147,closes #148,closes #149,closes #150,closes #151,closes #152,closes #153,closes #154,closes #155,closes #156,closes #157,closes #158,closes #159,closes #160,closes #161,closes #162,closes #163,closes #164,closes #165,closes #166,closes #167,closes #168,closes #169,closes #170,closes #171,closes #172,closes #173,closes #174,closes #175,closes #176,closes #177,closes #178,closes #179,closes #180,closes #181,closes #182,closes #183,closes #184,closes #185,closes #186,closes #187,closes #188,closes #189,closes #190,closes #191,closes #192,closes #193,closes #194,closes #195,closes #196,closes #197,closes #198,closes #199,closes #200,closes #201,closes #202,closes #203,closes #204,closes #205,closes #206,closes #207,closes #208,closes #209,closes #210,closes #211,closes #212,closes #213,closes #214,closes #215,closes #216,closes #217,closes #218,closes #219,closes #220,closes #221,closes #222,closes #223,closes #224,closes #225,closes #226,closes #227,closes #228,closes #229,closes #230,closes #231,closes #232,closes #233,closes #234,closes #235,closes #236,closes #237,closes #238,closes #239,closes #240,closes #241,closes #242,closes #243,closes #244,closes #245,closes #246,closes #247,closes #248,closes #249,closes #250,closes #251,closes #252,closes #253,closes #254,closes #255,closes #256,closes #257,closes #258,closes #259,closes #260,closes #261,closes #262,closes #263,closes #264,closes #265,closes #266,closes #267,closes #268,closes #269,closes #270,closes #271,closes #272,closes #273,closes #274,closes #275,closes #276,closes #277,closes #278,closes #279,closes #280,closes #281,closes #282,closes #283,closes #284,closes #285,closes #286,closes #287,closes #288,closes #289,closes #290,closes #291,closes #292,closes #293,closes #294,closes #295,closes #296,closes #297,closes #298,closes #299,closes #300,closes #301,closes #302,closes #303,closes #304,closes #305,closes #306,closes #307,closes #308,closes #309,closes #310,closes #311,closes #312,closes #313,closes #314,closes #315,closes #316,closes #317,closes #318,closes #319,closes #320,closes #321,closes #322,closes #323,closes #324,closes #325,closes #326,closes #327,closes #328,closes #329,closes #330,closes #331,closes #332,closes #333,closes #334,closes #335,closes #336,closes #337,closes #338,closes #339,closes #340,closes #341,closes #342,closes #343,closes #344,closes #345,closes #346,closes #347,closes #348,closes #349,closes #350,closes #351,closes #352,closes #353,closes #354,closes #355,closes #356,closes #357,closes #358,closes #359,closes #360,closes #361,closes #362,closes #363,closes #364,closes #365,closes #366,closes #367,closes #368,closes #369,closes #370,closes #371,closes #372,closes #373,closes #374,closes #375,closes #376,closes #377,closes #378,closes #379,closes #380,closes #381,closes #382,closes #383,closes #384,closes #385,closes #386,closes #387,closes #388,closes #389,closes #390,closes #391,closes #392,closes #393,closes #394,closes #395,closes #396,closes #397,closes #398,closes #399,closes #400,closes #401,closes #402,closes #403,closes #404,closes #405,closes #406,closes #407,closes #408,closes #409,closes #410,closes #411,closes #412,closes #413,closes #414,closes #415,closes #416,closes #417,closes #418,closes #419,closes #420,closes #421,closes #422,closes #423,closes #424,closes #425,closes #426,closes #427,closes #428,closes #429,closes #430,closes #431,closes #432,closes #433,closes #434,closes #435,closes #436,closes #437,closes #438,closes #439,closes #440,closes #441,closes #442,closes #443,closes #444,closes #445,closes #446,closes #447,closes #448,closes #449,closes #450,closes #451,closes #452,closes #453,closes #454,closes #455,closes #456,closes #457,closes #458,closes #459,closes #460,closes #461,closes #462,closes #463,closes #464,closes #465,closes #466,closes #467,closes #468,closes #469,closes #470,closes #471,closes #472,closes #473,closes #474,closes #475,closes #476,closes #477,closes #478,closes #479,closes #480,closes #481,closes #482,closes #483,closes #484,closes #485,closes #486,closes #487,closes #488,closes #489,closes #490,closes #491,closes #492,closes #493,closes #494,closes #495,closes #496,closes #497,closes #498,closes #499,closes #500,closes #501,closes #502,closes #503,closes #504,closes #505,closes #506,closes #507,closes #508,closes #509,closes #510,closes #511,closes #512,closes #513,closes #514,closes #515,closes #516,closes #517,closes #518,closes #519,closes #520,closes #521,closes #522,closes #523,closes #524,closes #525,closes #526,closes #527,closes #528,closes #529,closes #530,closes #531,closes #532,closes #533,closes #534,closes #535,closes #536,closes #537,closes #538,closes #539,closes #540,closes #541,closes #542,closes #543,closes #544,closes #545,closes #546,closes #547,closes #548,closes #549,closes #550,closes #551,closes #552,closes #553,closes #554,closes #555,closes #556,closes #557,closes #558,closes #559,closes #560,closes #561,closes #562,closes #563,closes #564,closes #565,closes #566,closes #567,closes #568,closes #569,closes #570,closes #571,closes #572,closes #573,closes #574,closes #575,closes #576,closes #577,closes #578,closes #579,closes #580,closes #581,closes #582,closes #583,closes #584,closes #585,closes #586,closes #587,closes #588,closes #589,closes #590,closes #591,closes #592,closes #593,closes #594,closes #595,closes #596,closes #597,closes #598,closes #599,closes #600,closes #601,closes #602,closes #603,closes #604,closes #605,closes #606,closes #607,closes #608,closes #609,closes #610,closes #611,closes #612,closes #613,closes #614,closes #615,closes #616,closes #617,closes #618,closes #619,closes #620,closes #621,closes #622,closes #623,closes #624,closes #625,closes #626,closes #627,closes #628,closes #629,closes #630,closes #631,closes #632,closes #633,closes #634,closes #635,closes #636,closes #637,closes #638,closes #639,closes #640,closes #641,closes #642,closes #643,closes #644,closes #645,closes #646,closes #647,closes #648,closes #649,closes #650,closes #651,closes #652,closes #653,closes #654,closes #655,closes #656,closes #657,closes #658,closes #659,closes #660,closes #661,closes #662,closes #663,closes #664,closes #665,closes #666,closes #667,closes #668,closes #669,closes #670,closes #671,closes #672,closes #673,closes #674,closes #675,closes #676,closes #677,closes #678,closes #679,closes #680,closes #681,closes #682,closes #683,closes #684,closes #685,closes #686,closes #687,closes #688,closes #689,closes #690,closes #691,closes #692,closes #693,closes #694,closes #695,closes #696,closes #697,closes #698,closes #699,closes #700,closes #701,closes #702,closes #703,closes #704,closes #705,closes #706,closes #707,closes #708,closes #709,closes #710,closes #711,closes #712,closes #713,closes #714,closes #715,closes #716,closes #717,closes #718,closes #719,closes #720,closes #721,closes #722,closes #723,closes #724,closes #725,closes #726,closes #727,closes #728,closes #729,closes #730,closes #731,closes #732,closes #733,closes #734,closes #735,closes #736,closes #737,closes #738,closes #739,closes #740,closes #741,closes #742,closes #743,closes #744,closes #745,closes #746,closes #747,closes #748,closes #749,closes #750,closes #751,closes #752,closes #753,closes #754,closes #755,closes #756,closes #757,closes #758,closes #759,closes #760,closes #761,closes #762,closes #763,closes #764,closes #765,closes #766,closes #767,closes #768,closes #769,closes #770,closes #771,closes #772,closes #773,closes #774,closes #775,closes #776,closes #777,closes #778,closes #779,closes #780,closes #781,closes #782,closes #783,closes #784,closes #785,closes #786,closes #787,closes #788,closes #789,closes #790,closes #791,closes #792,closes #793,closes #794,closes #795,closes #796,closes #797,closes #798,closes #799,closes #800,closes #801,closes #802,closes #803,closes #804,closes #805,closes #806,closes #807,closes #808,closes #809,closes #810,closes #811,closes #812,closes #813,closes #814,closes #815,closes #816,closes #817,closes #818,closes #819,closes #820,closes #821,closes #822,closes #823,closes #824,closes #825,closes #826,closes #827,closes #828,closes #829,closes #830,closes #831,closes #832,closes #833,closes #834,closes #835,closes #836,closes #837,closes #838,closes #839,closes #840,closes #841,closes #842,closes #843,closes #844,closes #845,closes #846,closes #847,closes #848,closes #849,closes #850,closes #851,closes #852,closes #853,closes #854,closes #855,closes #856,closes #857,closes #858,closes #859,closes #860,closes #861,closes #862,closes #863,closes #864,closes #865,closes #866,closes #867,closes #868,closes #869,closes #870,closes #871,closes #872,closes #873,closes #874,closes #875,closes #876,closes #877,closes #878,closes #879,closes #880,closes #881,closes #882,closes #883,closes #884,closes #885,closes #886,closes #887,closes #888,closes #889,closes #890,closes #891,closes #892,closes #893,closes #894,closes #895,closes #896,closes #897,closes #898,closes #899,closes #900,closes #901,closes #902,closes #903,closes #904,closes #905,closes #906,closes #907,closes #908,closes #909,closes #910,closes #911,closes #912,closes #913,closes #914,closes #915,closes #916,closes #917,closes #918,closes #919,closes #920,closes #921,closes #922,closes #923,closes #924,closes #925,closes #926,closes #927,closes #928,closes #929,closes #930,closes #931,closes #932,closes #933,closes #934,closes #935,closes #936,closes #937,closes #938,closes #939,closes #940,closes #941,closes #942,closes #943,closes #944,closes #945,closes #946,closes #947,closes #948,closes #949,closes #950,closes #951,closes #952,closes #953,closes #954,closes #955,closes #956,closes #957,closes #958,closes #959,closes #960,closes #961,closes #962,closes #963,closes #964,closes #965,closes #966,closes #967,closes #968,closes #969,closes #970,closes #971,closes #972,closes #973,closes #974,closes #975,closes #976,closes #977,closes #978,closes #979,closes #980,closes #981,closes #982,closes #983,closes #984,closes #985,closes #986,closes #987,closes #988,closes #989,closes #990,closes #991,closes #992,closes #993,closes #994,closes #995,closes #996,closes #997,closes #998,closes #999,closes #1000,closes #1001,closes #1002,closes #1003,closes #1004,closes #1005,closes #1006,closes #1007,closes #1008,closes #1009,closes #1010,closes #1011,closes #1012,closes #1013,closes #1014,closes #1015,closes #1016,closes #1017,closes #1018,closes #1019,closes #1020,closes #1021,closes #1022,closes #1023,closes #1024,closes #1025,closes #1026,closes #1027,closes #1028,closes #1029,closes #1030,closes #1031,closes #1032,closes #1033,closes #1034,closes #1035,closes #1036,closes #1037,closes #1038,closes #1039,closes #1040,closes #1041,closes #1042,closes #1043,closes #1044,closes #1045,closes #1046,closes #1047,closes #1048,closes #1049,closes #1050,closes #1051,closes #1052,closes #1053,closes #1054,closes #1055,closes #1056,closes #1057,closes #1058,closes #1059,closes #1060,closes #1061,closes #1062,closes #1063,closes #1064,closes #1065,closes #1066,closes #1067,closes #1068,closes #1069,closes #1070,closes #1071,closes #1072,closes #1073,closes #1074,closes #1075,closes #1076,closes #1077,closes #1078,closes #1079,closes #1080,closes #1081,closes #1082,closes #1083,closes #1084,closes #1085,closes #1086,closes #1087,closes #1088,closes #1089,closes #1090,closes #1091,closes #1092,closes #1093,closes #1094,closes #1095,closes #1096,closes #1097,closes #1098,closes #1099,closes #1100,closes #1101,closes #1102,closes #1103,closes #1104,closes #1105,closes #1106,closes #1107,closes #1108,closes #1109,closes #1110,closes #1111,closes #1112,closes #1113,closes #1114,closes #1115,closes #1116,closes #1117,closes #1118,closes #1119,closes #1120,closes #1121,closes #1122,closes #1123,closes #1124,closes #1125,closes #1126,closes #1127,closes #1128,closes #1129,closes #1130,closes #1131,closes #1132,closes #1133,closes #1134,closes #1135,closes #1136,closes #1137,closes #1138,closes #1139,closes #1140,closes #1141,closes #1142,closes #1143,closes #1144,closes #1145,closes #1146,closes #1147,closes #1148,closes #1149,closes #1150,closes #1151,closes #1152,closes #1153,closes #1154,closes #1155,closes #1156,closes #1157,closes #1158,closes #1159,closes #1160,closes #1161,closes #1162,closes #1163,closes #1164,closes #1165,closes #1166,closes #1167,closes #1168,closes #1169,closes #1170,closes #1171,closes #1172,closes #1173,closes #1174,closes #1175,closes #1176,closes #1177,closes #1178,closes #1179,closes #1180,closes #1181,closes #1182,closes #1183,closes #1184,closes #1185,closes #1186,closes #1187,closes #1188,closes #1189,closes #1190,closes #1191,closes #1192,closes #1193,closes #1194,closes #1195,closes #1196,closes #1197,closes #1198,closes #1199,closes #1200,closes #1201,closes #1202,closes #1203,closes #1204,closes #1205,closes #1206,closes #1207,closes #1208,closes #1209,closes #1210,closes #1211,closes #1212,closes #1213,closes #1214,closes #1215,closes #1216,closes #1217,closes #1218,closes #1219,closes #1220,closes #1221,closes #1222,closes #1223,closes #1224,closes #1225,closes #1226,closes #1227,closes #1228,closes #1229,closes #1230,closes #1231,closes #1232,closes #1233,closes #1234,closes #1235,closes #1236,closes #1237,closes #1238,closes #1239,closes #1240,closes #1241,closes #1242,closes #1243,closes #1244,closes #1245,closes #1246,closes #1247,closes #1248,closes #1249,closes #1250,closes #1251,closes #1252,closes #1253,closes #1254,closes #1255,closes #1256,closes #1257,closes #1258,closes #1259,closes #1260,closes #1261,closes #1262,closes #1263,closes #1264,closes #1265,closes #1266,closes #1267,closes #1268,closes #1269,closes #1270,closes #1271,closes #1272,closes #1273,closes #1274,closes #1275,closes #1276,closes #1277,closes #1278,closes #1279,closes #1280,closes #1281,closes #1282,closes #1283,closes #1284,closes #1285,closes #1286,closes #1287,closes #1288,closes #1289,closes #1290,closes #1291,closes #1292,closes #1293,closes #1294,closes #1295,closes #1296,closes #1297,closes #1298,closes #1299,closes #1300,closes #1301,closes #1302,closes #1303,closes #1304,closes #1305,closes #1306,closes #1307,closes #1308,closes #1309,closes #1310,closes #1311,closes #1312,closes #1313,closes #1314,closes #1315,closes #1316,closes #1317,closes #1318,closes #1319,closes #1320,closes #1321,closes #1322,closes #1323,closes #1324,closes #1325,closes #1326,closes #1327,closes #1328,closes #1329,closes #1330,closes #1331,closes #1332,closes #1333,closes #1334,closes #1335,closes #1336,closes #1337,closes #1338,closes #1339,closes #1340,closes #1341,closes #1342,closes #1343,closes #1344,closes #1345,closes #1346,closes #1347,closes #1348,closes #1349,closes #1350,closes #1351,closes #1352,closes #1353,closes #1354,closes #1355,closes #1356,closes #1357,closes #1358,closes #1359,closes #1360,closes #1361,closes #1362,closes #1363,closes #1364,closes #1365,closes #1366,closes #1367,closes #1368,closes #1369,closes #1370,closes #1371,closes #1372,closes #1373,closes #1374,closes #1375,closes #1376,closes #1377,closes #1378,closes #1379,closes #1380,closes #1381,closes #1382,closes #1383,closes #1384,closes #1385,closes #1386,closes #1387,closes #1388,closes #1389,closes #1390,closes #1391,closes #1392,closes #1393,closes #1394,closes #1395,closes #1396,closes #1397,closes #1398,closes #1399,closes #1400,closes #1401,closes #1402,closes #1403,closes #1404,closes #1405,closes #1406,closes #1407,closes #1408,closes #1409,closes #1410,closes #1411,closes #1412,closes #1413,closes #1414,closes #1415,closes #1416,closes #1417,closes #1418,closes #1419,closes #1420,closes #1421,closes #1422,closes #1423,closes #1424,closes #1425,closes #1426,closes #1427,closes #1428,closes #1429,closes #1430,closes #1431,closes #1432,closes #1433,closes #1434,closes #1435,closes #1436,closes #1437,closes #1438,closes #1439,closes #1440,closes #1441,closes #1442,closes #1443,closes #1444,closes #1445,closes #1446,closes #1447,closes #1448,closes #1449,closes #1450,closes #1451,closes #1452,closes #1453,closes #1454,closes #1455,closes #1456,closes #1457,closes #1458,closes #1459,closes #1460,closes #1461,closes #1462,closes #1463,closes #1464,closes #1465,closes #1466,closes #1467,closes #1468,closes #1469,closes #1470,closes #1471,closes #1472,closes #1473,closes #1474,closes #1475,closes #1476,closes #1477,closes #1478,closes #1479,closes #1480,closes #1481,closes #1482,closes #1483,closes #1484,closes #1485,closes #1486,closes #1487,closes #1488,closes #1489,closes #1490,closes #1491,closes #1492,closes #1493,closes #1494,closes #1495,closes #1496,closes #1497,closes #1498,closes #1499,closes #1500,closes #1501,closes #1502,closes #1503,closes #1504,closes #1505,closes #1506,closes #1507,closes #1508,closes #1509,closes #1510,closes #1511,closes #1512,closes #1513,closes #1514,closes #1515,closes #1516,closes #1517,closes #1518,closes #1519,closes #1520,closes #1521,closes #1522,closes #1523,closes #1524,closes #1525,closes #1526,closes #1527,closes #1528,closes #1529,closes #1530,closes #1531,closes #1532,closes #1533,closes #1534,closes #1535,closes #1536,closes #1537,closes #1538,closes #1539,closes #1540,closes #1541,closes #1542,closes #1543,closes #1544,closes #1545,closes #1546,closes #1547,closes #1548,closes #1549,closes #1550,closes #1551,closes #1552,closes #1553,closes #1554,closes #1555,closes #1556,closes #1557,closes #1558,closes #1559,closes #1560,closes #1561,closes #1562,closes #1563,closes #1564,closes #1565,closes #1566,closes #1567,closes #1568,closes #1569,closes #1570,closes #1571,closes #1572,closes #1573,closes #1574,closes #1575,closes #1576,closes #1577,closes #1578,closes #1579,closes #1580,closes #1581,closes #1582,closes #1583,closes #1584,closes #1585,closes #1586,closes #1587,closes #1588,closes #1589,closes #1590,closes #1591,closes #1592,closes #1593,closes #1594,closes #1595,closes #1596,closes #1597,closes #1598,closes #1599,closes #1600,closes #1601,closes #1602,closes #1603,closes #1604,closes #1605,closes #1606,closes #1607,closes #1608,closes #1609,closes #1610,closes #1611,closes #1612,closes #1613,closes #1614,closes #1615,closes #1616,closes #1617,closes #1618,closes #1619,closes #1620,closes #1621,closes #1622,closes #1623,closes #1624,closes #1625,closes #1626,closes #1627,closes #1628,closes #1629,closes #1630,closes #1631,closes #1632,closes #1633,closes #1634,closes #1635,closes #1636,closes #1637,closes #1638,closes #1639,closes #1640,closes #1641,closes #1642,closes #1643,closes #1644,closes #1645,closes #1646,closes #1647,closes #1648,closes #1649,closes #1650,closes #1651,closes #1652,closes #1653,closes #1654,closes #1655,closes #1656,closes #1657,closes #1658,closes #1659,closes #1660,closes #1661,closes #1662,closes #1663,closes #1664,closes #1665,closes #1666,closes #1667,closes #1668,closes #1669,closes #1670,closes #1671,closes #1672,closes #1673,closes #1674,closes #1675,closes #1676,closes #1677,closes #1678,closes #1679,closes #1680,closes #1681,closes #1682,closes #1683,closes #1684,closes #1685,closes #1686,closes #1687,closes #1688,closes #1689,closes #1690,closes #1691,closes #1692,closes #1693,closes #1694,closes #1695,closes #1696,closes #1697,closes #1698,closes #1699,closes #1700,closes #1701,closes #1702,closes #1703,closes #1704,closes #1705,closes #1706,closes #1707,closes #1708,closes #1709,closes #1710,closes #1711,closes #1712,closes #1713,closes #1714,closes #1715,closes #1716,closes #1717,closes #1718,closes #1719,closes #1720,closes #1721,closes #1722,closes #1723,closes #1724,closes #1725,closes #1726,closes #1727,closes #1728,closes #1729,closes #1730,closes #1731,closes #1732,closes #1733,closes #1734,closes #1735,closes #1736,closes #1737,closes #1738,closes #1739,closes #1740,closes #1741,closes #1742,closes #1743,closes #1744,closes #1745,closes #1746,closes #1747,closes #1748,closes #1749,closes #1750,closes #1751,closes #1752,closes #1753,closes #1754,closes #1755,closes #1756,closes #1757,closes #1758,closes #1759,closes #1760,closes #1761,closes #1762,closes #1763,closes #1764,closes #1765,closes #1766,closes #1767,closes #1768,closes #1769,closes #1770,closes #1771,closes #1772,closes #1773,closes #1774,closes #1775,closes #1776,closes #1777,closes #1778,closes #1779,closes #1780,closes #1781,closes #1782,closes #1783,closes #1784,closes #1785,closes #1786,closes #1787,closes #1788,closes #1789,closes #1790,closes #1791,closes #1792,closes #1793,closes #1794,closes #1795,closes #1796,closes #1797,closes #1798,closes #1799,closes #1800,closes #1801,closes #1802,closes #1803,closes #1804,closes #1805,closes #1806,closes #1807,closes #1808,closes #1809,closes #1810,closes #1811,closes #1812,closes #1813,closes #1814,closes #1815,closes #1816,closes #1817,closes #1818,closes #1819,closes #1820,closes #1821,closes #1822,closes #1823,closes #1824,closes #1825,closes #1826,closes #1827,closes #1828,closes #1829,closes #1830,closes #1831,closes #1832,closes #1833,closes #1834,closes #1835,closes #1836,closes #1837,closes #1838,closes #1839,closes #1840,closes #1841,closes #1842,closes #1843,closes #1844,closes #1845,closes #1846,closes #1847,closes #1848,closes #1849,closes #1850,closes #1851,closes #1852,closes #1853,closes #1854,closes #1855,closes #1856,closes #1857,closes #1858,closes #1859,closes #1860,closes #1861,closes #1862,closes #1863,closes #1864,closes #1865,closes #1866,closes #1867,closes #1868,closes #1869,closes #1870,closes #1871,closes #1872,closes #1873,closes #1874,closes #1875,closes #1876,closes #1877,closes #1878,closes #1879,closes #1880,closes #1881,closes #1882,closes #1883,closes #1884,closes #1885,closes #1886,closes #1887,closes #1888,closes #1889,closes #1890,closes #1891,closes #1892,closes #1893,closes #1894,closes #1895,closes #1896,closes #1897,closes #1898,closes #1899,closes #1900,closes #1901,closes #1902,closes #1903,closes #1904,closes #1905,closes #1906,closes #1907,closes #1908,closes #1909,closes #1910,closes #1911,closes #1912,closes #1913,closes #1914,closes #1915,closes #1916,closes #1917,closes #1918,closes #1919,closes #1920,closes #1921,closes #1922,closes #1923,closes #1924,closes #1925,closes #1926,closes #1927,closes #1928,closes #1929,closes #1930,closes #1931,closes #1932,closes #1933,closes #1934,closes #1935,closes #1936,closes #1937,closes #1938,closes #1939,closes #1940,closes #1941,closes #1942,closes #1943,closes #1944,closes #1945,closes #1946,closes #1947,closes #1948,closes #1949,closes #1950,closes #1951,closes #1952,closes #1953,closes #1954,closes #1955,closes #1956,closes #1957,closes #1958,closes #1959,closes #1960,closes #1961,closes #1962,closes #1963,closes #1964,closes #1965,closes #1966,closes #1967,closes #1968,closes #1969,closes #1970,closes #1971,closes #1972,closes #1973
@enguerranws
Copy link

@lynndylanhurley I'm facing the same use case that you described and ended up with a solution like you mentioned in the first place:

class Index extends React.Component {
  // ...
  componentDidMount () {
    this.props.dispatch(currentScreenChange('Index'));
  }

  // ...
}

This works but it doesn't seem clean IMO (code repeating everywhere).

So I saw you suggest an improvement:

const store = // ... create redux store

// define a handler that is called whenever the current route is changed
function onEnterHandler(nextScreenName, lastScreenName) {

  // dispatch route change event from a single, centralized location
  store.dispatch(updateRoute(nextScreenName, lastScreenName);
}

// then in the render method, place the `onEnterHandler` on the top-level router:
<Router onEnter={onEnterHandler}>
  // ...
</Router>

I tried to implement that but I can't make it work: it seems onEnter is never fired. Can you give me a working example of this? Which version of RNRF do you use?

@aksonov
Copy link
Owner

aksonov commented Jul 20, 2017

For v4 you access currentRoute as Actons.currentScene

@enguerranws
Copy link

@aksonov I saw that, but I read that v4 is still in beta. Is it safe to use it right now?

@aksonov
Copy link
Owner

aksonov commented Jul 20, 2017

Yes, it has the same quality as ReactNavigation (that is still in beta too) - recommended way for navigation from Facebook

@aksonov
Copy link
Owner

aksonov commented Jul 20, 2017

Even more we fixed some ReactNavigation issues already (like popTo, pass props to tabs, etc.)

@enguerranws
Copy link

Nice to hear that. Thanks for your quick answer!

@sarahmarciano
Copy link

@PumpkinSeed did u solve that?
I'm getting the same error

@PumpkinSeed
Copy link

@sarahmarciano No, I tried an other way, but it's not related to this issue.

@sarahmarciano
Copy link

Which other way?
I'm searching a way to achieve that but didn't succeed

@PumpkinSeed
Copy link

@sarahmarciano I had a problem, where the Actions.currentRouter.currentRoute was a small part, so I tried a totally other way to solve the whole problem, this is why I said "but it's not related to this issue"

@sarahmarciano
Copy link

Ok thank you
I'll try to solve it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

9 participants