react native - Set an immutable whose value is empty list to an empty list -
if set immutable value empty list empty list, seems immutable considered changed. can explain why happening? thought both mean null
, should not considered changed.
this question raised when using react native. when state [] set [] again, associated events triggered.
import react, { proptypes } 'react'; import meteor, { createcontainer } 'react-native-meteor'; import chatlistview './chatlistview'; import {connect} 'react-redux'; import { addroomlist, addroom, updatelastmsg } './chatliststate'; const chatlistviewcontainer = (props) => { const { listready, rooms, messages, userid, authtoken, addroomlist, addroom, updatelastmsg } = props; console.log('container', rooms); console.log('container', messages); return ( <chatlistview listready={listready} rooms={rooms} messages={messages} userid={userid} authtoken={authtoken} addroomlist={addroomlist} addroom={addroom} updatelastmsg={updatelastmsg} /> ); }; chatlistviewcontainer.proptypes = { listready: proptypes.bool, rooms: proptypes.array, messages: proptypes.array, }; const meteorcontainer = createcontainer(() => { const handle0 = meteor.subscribe('userchannels', meteor.userid()); const roomhandle = meteor.subscribe('room', 'channels'); const messageshandle = meteor.subscribe('messages', 'general'); return { listready: roomhandle.ready()&&messageshandle.ready(), // 2 lines below responsible update of value // rooms =[], messages =[], equivalent // rooms =[], messages =[] got executed // considers immutables changed // , triggers mechanism of redux rooms: meteor.collection('room').find(), messages: meteor.collection('messages').find(), }; }, chatlistviewcontainer); export default connect( state => ({ userid: state.getin(['auth','currentuser','userid']), authtoken: state.getin(['auth','authenticationtoken']) }), dispatch => ({ addroomlist(roomlist) { dispatch(addroomlist(roomlist)); }, addroom(rid) { dispatch(addroom(rid)); }, updatelastmsg(msg) { dispatch(updatelastmsg(msg)); } }) )(meteorcontainer)
Comments
Post a Comment