Przeglądaj źródła

redux с БАБЛОМ

Vladislav342 2 lat temu
rodzic
commit
1abae73ecb
1 zmienionych plików z 14 dodań i 18 usunięć
  1. 14 18
      HW_11/redux2.html

+ 14 - 18
HW_11/redux2.html

@@ -20,31 +20,32 @@
 	<input type="number" id="skok" placeholder="сколько надо?">
 	<input type="number" id="bablo" placeholder="сколько денег?">
 	<button id="btn">Купить</button>
+	<p id="error"></p>
 
 	<script>
-
 		function reducer(state, {type, ШО, СКОКА, БАБЛО}){
     	if (!state){ 
        		return {
             	пиво:{колво:100, цена: 10},
             	чипсы:{колво:100, цена:20},
             	сиги:{колво:100, цена:30},
-            	касса:23450
+            	касса:2700
         	}
     	}
     		if (type === 'КУПИТЬ'){ 
-    			if(ШО in state && БАБЛО > state[ШО].цена * СКОКА){
-    				return state[ШО] - СКОКА >= 0 ? {
+    			if((ШО in state) && БАБЛО >= state[ШО].цена * СКОКА  && state[ШО].колво - СКОКА >= 0){
+    				return {
         				...state,
-              			ШО:{колво:state[ШО].колво - СКОКА, цена: state[ШО].цена},
+              			[ШО]:{колво:state[ШО].колво - СКОКА, цена: state[ШО].цена},
             			касса: +state.касса + (state[ШО].цена*СКОКА)
-          			} : state;
-      			}
+          			} 
+      			}/*else{
+      				error.innerHTML='\&#9785; что-то не так (нет данного товара или не хватает денег) \&#9785;';
+      			}*/
     		}	
-      		return state;
+      		return state ;
 		}
 
-
 		function createStore(reducer){
     		let state       = reducer(undefined, {}) 
     		let cbs         = []                     
@@ -68,9 +69,8 @@
 		let store=createStore(reducer);
 		btn.onclick=function(){
 			for(let [key] of Object.entries(store.getState())){
-				console.log(key);
 				if(tovar.value===key){
-					store.dispatch({type: 'КУПИТЬ', ШО:{[tovar.value]:[tovar.value].колво}, СКОКА: skok.value, БАБЛО: bablo.value });
+					store.dispatch({type: 'КУПИТЬ', ШО:tovar.value, СКОКА: skok.value, БАБЛО: bablo.value });
 					console.log(store.getState());
 				}
 			}
@@ -97,11 +97,7 @@
 			}
 			tr.append(td,td2,td3);
 			table.append(tr);
-			
-			table.style.border='1px solid black';
-
-			console.log(key);
-			console.log(value);
+			table.style.border='1px solid black';	
 		}
 		document.body.append(table);
 
@@ -113,6 +109,7 @@
 				let tr=document.createElement('tr');
 				let td=document.createElement('td');
 				let td2=document.createElement('td');
+				let td3=document.createElement('td');
 				td.innerText=key;
 				if(typeof value==='object'){
 					for(let i in value){
@@ -126,8 +123,7 @@
 				}else{
 					td2.innerText=value;
 				}
-				tr.append(td,td2);
-				td.innerText=key+':'+value;
+				tr.append(td,td2,td3);
 				table.append(tr);
 			}
 			document.body.append(table);