@@ -41,15 +41,19 @@ const extend = (target, ...sources) => {
4141} ;
4242
4343const SortableMixin = ( options = defaultOptions ) => ( Component ) => class extends React . Component {
44- sortableInstance = null ;
44+
45+ state = {
46+ sortableInstance : null
47+ } ;
48+
4549 sortableOptions = extend ( { } , defaultOptions , options ) ;
4650
4751 componentDidMount ( ) {
4852 const sortableComponent = this . refs [ refName ] ;
4953 const emitEvent = ( type , evt ) => {
5054 const methodName = this . sortableOptions [ type ] ;
5155 const method = sortableComponent [ methodName ] ;
52- method && method . call ( sortableComponent , evt , this . sortableInstance ) ;
56+ method && method . call ( sortableComponent , evt , this . state . sortableInstance ) ;
5357 } ;
5458
5559 let copyOptions = extend ( { } , this . sortableOptions ) ;
@@ -133,18 +137,19 @@ const SortableMixin = (options = defaultOptions) => (Component) => class extends
133137 initSortable ( sortableComponent ) {
134138 this . destroySortable ( ) ;
135139 const domNode = ReactDOM . findDOMNode ( sortableComponent . refs [ this . sortableOptions . ref ] || sortableComponent ) ;
136- this . sortableInstance = Sortable . create ( domNode , this . populatedOptions ) ;
140+ const sortableInstance = Sortable . create ( domNode , this . populatedOptions ) ;
141+ this . setState ( { sortableInstance} ) ;
137142 }
138143 destroySortable ( ) {
139- if ( this . sortableInstance ) {
140- this . sortableInstance . destroy ( ) ;
141- this . sortableInstance = null ;
144+ if ( this . state . sortableInstance ) {
145+ this . state . sortableInstance . destroy ( ) ;
146+ this . setState ( { sortableInstance : null } ) ;
142147 }
143148 }
144149
145150 render ( ) {
146151 return (
147- < Component ref = { refName } { ...this . props } />
152+ < Component ref = { refName } sortableInstance = { this . state . sortableInstance } { ...this . props } />
148153 ) ;
149154 }
150155} ;
0 commit comments