set(id, data)

Sets data in a node.

Parameters

  • id (string) - string id of a node.
  • data (anything) - data to be set in the node OR a function that returns new data based on current data. Data type CANNOT be modified.

Returns

  • N/A

Examples

Tip 1: set does not allow data type mutation. However, if node contained null to begin with, any data type except function can be set.

import Treeful from 'treeful';

Treeful.add('n1', 'monday')
       .add('n2');

Treeful.set('n1', 'tuesday'); // Success. Data in node 'n1' has been set to 'tuesday'
Treeful.set('n1', false);     // Error. Data in node 'n1' is still 'tuesday'
Treeful.set('n2', false);     // Success. Data in node 'n2' has been set to false

Tip 2: When setting data based on current data, DO NOT use get (refer to tip 1 of get for explanation). Instead, use the following convention.

import Treeful from 'treeful';

Treeful.add('n1', 0);
       .add('n2', []);

Treeful.set('n1', (e) => e + 1);
Treeful.set('n2', (e) => {
    e.push('item');
    return e;
});

Tip 3: DO NOT pass asynchronous functions as a parameter of set.

import Treeful from 'treeful';

Treeful.add('n1', 0);

Treeful.set('n1', (e) => {
    $.ajax({
        complete: (resp) => {
            return e + resp; // WARNING. Value of 'e' might have changed when ajax call was in progress.
        }
    });
});

results matching ""

    No results matching ""