Question: I am using a `TabNavigator` in my react-native project, and pass some data between the screens via `this.props.navigation.setParams()`, and respectively `this.props.navigation.getParam()`. The problem is that this approach works for me, only when I send that data for the first time, second time when I try to send the data, when leaving the screen the data doesn't update in `navigation.state.params`

Here are fragments of code responsible for receiving, and sending data

```
import {NavigationEvents} from 'react-navigation';

...

receiveData = () => {
    if (this.props.navigation.state.params.data !== null) {
        const data = this.props.navigation.getParam('data');
        this.setState({data});
    }
}

sendData = () => {
    const {data} = this.state;
    this.props.navigation.setParams({data});
}

render(){

...

<NavigationEvents
    onWillFocus = {this.receiveData}
    on WillBlur = {this.sendData}
/>

...

}

```

Answer: 
You need to set the seed inside your processes:

```
import random
from multiprocessing import Process, Manager

def f2(i):
    random.seed(2019+i)
    print('from f2:')
    v = random.randint(0, 10)
    a = random.randint(0, 10)
    print('v:', v, 'a:', a)
    return v, a

def python_process_test():
    n_workers = 2
    workers = []

    for i in range(n_workers):
        p = Process(target=f2, args=([i]))
        p.start()
        workers.append(p)

    for p in workers:
        p.join()

if __name__ == '__main__':
    python_process_test()

```

This yield the following output everytime:

```
from f2:
v: 2 a: 3
from f2:
v: 9 a: 9

```

EDIT: updated to show the passthrough of reseeding each process by worker with different seeds
```
import time
import random
from multiprocessing import Process
from datetime import datetime

random.seed(2222)

def get_random_sleep_time():
    random.seed(datetime.now().microsecond)
    return random.randint(0,3)

def f2(rnd_seed, process_id):
    # To randomize order in which process will print
    sleep_time = get_random_sleep_time()
    time.sleep(sleep_time)

    random.seed(rnd_seed)

    v = random.randint(0, 10)
    a = random.randint(0, 10)
    print('process_id:', process_id, 'v:', v)
    return v, a

def python_process_test():
    n_workers = 4
    workers = []
    for i in range(n_workers):
        rnd_seed = random.randint(0,10)
        p = Process(target=f2, args=(rnd_seed,i))
        p.start()
        workers.append(p)

    for p in workers:
        p.join()

if __name__ == '__main__':
    python_process_test()

```