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.
}
});
});