It's not reacting with water, it's dissolving in the water when you heat it. Most soluble compounds can dissolve and crystallize over and over. It just depends on the temperature of the solvent. Warming up the pack dissolves the sodium acetate. When it cools it may still be in solution, but supercooled and ready to crystallize. You then do something that encourages it to crystallize (clicking a disk) and this releases the heat. The sodium acetate does dissolve, but at room temperature it crystallizes. Find out more by going to www.google.com and typing in: how sodium acetate heat packs work.