You cannot set objects as values, this will make the value itself be a string of [object Object], which is what you see(when you stringify your state, it was already [object Object] before), you can store a index or identifier value, and search in an array for the object, if you want to JSON stringify it, it would have to be done on the value of the options as well
<Form.Select onChange={e => setSelectedOp(e.target.value)} className='b' style={{ display:
'inline-block' }} size="lg" aria-label="Default select example">
<option>Click to choose message</option>
{mainNotifications.map((n, i) =>
<option key={i} name="selectMessage" value={{message:n.message,type:n.type}}>hey this is an option tag </option>
)}
</Form.Select>
Comments
Comment posted by Mindy
thanks for your response ! your solution returns {“value”:”one”,”type”:”number”} which looks good , but I’m not managing to access the value of the object? when I do val.value like in your example it returns undefined,
Comment posted by Baskaran Ajiharan
if you want get val.value you need to parse the string value JSON.parse(val).value
Comment posted by Mindy
how do i do that? do i need to parse the whole object back ?
Comment posted by Baskaran Ajiharan
yes, JSON.stringify is used to stringify an object as a string then if you want to get it back as the object you need to parse it
Comment posted by Mindy
hey thanks for your reply! could you show how to do it in a good way?
Comment posted by iunfixit
@Mindy I provided an example, you would need to change it according to your code, would be great to associate an ID with the notifications when they are created as well